gpt4 book ai didi

c++ - 基于类的状态机?

转载 作者:行者123 更新时间:2023-11-30 01:28:36 27 4
gpt4 key购买 nike

在 C++ 中,我尝试基于类为游戏制作一个简单的状态机。

stateMan.setState<mainMenuState>();

我有一个声明如下的类:

class stateManager
{
...
template <class T>
void setState(void);
}

测试代码为:

template <class T>
void stateManager::setState<T>(void)
{
T* blah = new T;
delete blah;
}

很明显,自 function template partial specialization ‘setState<T>’ is not allowed 以来,这是行不通的.

除了非 OO 之外,还有更好的方法吗?

最佳答案

成员函数模板的定义应该是这样的:

template <class T>
void stateManager::setState(void)
{
//...
}

也就是说,它应该是简单的setState而不是 setState<T> .后一种语法用于函数模板特化。自 T是类型参数,特化将被视为函数部分模板特化,这是不允许的。

关于c++ - 基于类的状态机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com