Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';t我的简单c++;代码编译?我得到了未声明的标识符? 为什么我的简单C++代码不编译?获取未声明的标识符错误_C++ - Fatal编程技术网

为什么赢了';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;
}
// ...
模板类状态机
{
公众:
状态机();
};

编译器从上到下读取代码-它只能理解已声明的内容

请发布您收到的错误消息。