【发布时间】:2012-01-18 12:24:03
【问题描述】:
首先让我说我已经在谷歌上广泛搜索了答案,更具体地说是在这里。
问题是我实际上(至少我认为我做到了)找到了有类似问题的人,尽管给他们的答案给了我另一个问题。
我正在使用 Visual Studio 2010 Express 并使用 SFML 库(尽管我认为最后一部分不相关)
就这样吧:
我有一个名为 player.cpp 的源文件,其中包含 Player 类,我有一个名为 cc.h(命令和控制)的头文件(包含在所有源文件中),其中包含所有必要的包含和外部变量/函数。基本代码可以总结如下:
播放器.cpp:
#include "cc.h"
class Player
{
private:
//some variables here
public:
//more variables and some functions
}john;//example instance
cc.h:
#pragma once
//some #includes
//some externs
extern Player john;
现在在 cc.h 中,Player 这个词被加下划线表示它是一个 undefined identifier ,但只是有时,有时 Visual Studio 不会将其标记为错误,而是识别它作为一个类,但不将 john 识别为同一类的对象/实例(我希望它被称为这种方式)。
此外,在编译第一个错误时,它显示的第一个错误是“error C2146: syntax error : missing ';' before identifier 'john'”,位于 cc.h 中 john 的 extern 声明行,这显然(对我而言)没有任何意义。
【问题讨论】:
标签: c++ class undefined extern