为什么赢了';t我的简单c++;代码编译?我得到了未声明的标识符? 为什么我的简单C++代码不编译?获取未声明的标识符错误
我看不出有什么问题 非常感谢为什么赢了';t我的简单c++;代码编译?我得到了未声明的标识符? 为什么我的简单C++代码不编译?获取未声明的标识符错误,c++,C++,我看不出有什么问题 非常感谢 int _tmain(int argc, _TCHAR* argv[]) { StateMachine<States,Triggers> sm; return 0; } enum States { New, Complete }; enum Triggers { CreateNew, MoveToComplete }; template <class TState, class TTrigge
int _tmain(int argc, _TCHAR* argv[])
{
StateMachine<States,Triggers> sm;
return 0;
}
enum States
{
New,
Complete
};
enum Triggers
{
CreateNew,
MoveToComplete
};
template <class TState, class TTrigger> class StateMachine
{
public:
StateMachine();
};
int-tmain(int-argc,_-TCHAR*argv[]
{
国家机器主义;
返回0;
}
枚举状态
{
新的,,
完成
};
枚举触发器
{
创造新的,
移动完成
};
模板类状态机
{
公众:
状态机();
};
要么向前声明,要么将\u tmain
移动到底部,而且您还没有为构造函数提供实现。您必须向前声明StateMachine
类,否则编译器现在不知道如何处理该标识符,因为还没有人告诉他它实际上是什么,或者至少,它的存在
template<class TState, class TTrigger> class StateMachine;
int _tmain(int argc, _TCHAR* argv[])
{
StateMachine<States,Triggers> sm;
return 0;
}
// ...
template <class TState, class TTrigger> class StateMachine
{
public:
StateMachine();
};
模板类状态机;
int _tmain(int argc,_TCHAR*argv[]
{
国家机器主义;
返回0;
}
// ...
模板类状态机
{
公众:
状态机();
};
编译器从上到下读取代码-它只能理解已声明的内容请发布您收到的错误消息。