在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之外,还有更好的方法吗?
啊,我原本试过,但得到了(并仍然得到)一个'未定义的引用'void stateManager :: setState()''错误。 –
Jookia
嗯,只是想通了:该方法必须在头,而不是在cpp文件。 – Jookia
@Konrad:StateManager不是类模板。 – Nawaz