2

这可能很难解释。我已经在 MS VisC++ 2010 express 中开发了一个程序大约一个月了。我没有遇到任何奇怪的问题,并且准备第 100 次构建我的项目时,突然间,许多.cpp文件似乎与.h文件失去了联系。例如,在 main 函数中,我几周前创建和使用的对象突然出现在它们下面的红线和语法错误“ theClass is undefined”。这适用于iostream,所以突然cout是未定义的。我不知道发生了什么。所有的外部头文件和库一秒一秒地突然消失在 IDE 眼中。在.cpp文件中,当我声明class constructor

//initializes a poker game
aPokerGame::aPokerGame(void)
{
    stopPlaying = 'n';          
}

我得到类名下的行aPokerGame,这个错误是“ must be a class or a namespace name”。.h如果文件消失,这不是会发生什么吗?事实上,并不是所有.cpp的文件都有这个问题,只有一些。其他人在其中有非常奇怪的错误,例如“类不存在默认构造函数std::basic_ostream<wchar...”。所有这些错误同时出现。

头文件看起来不错。虽然其中一个在私人成员Error: expected a declaration的“”标题下有“ ”。Private:

请帮忙!

以下是编译错误的示例:

1>----- 构建开始:项目:firstProj,配置:Debug Win32 ------ 1> userPlayer.cpp 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj \userplayer.h(9): error C2504: 'Player': base class undefined 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): error C2059: 语法错误: '命名空间'1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): error C2334: unexpected token(s) before '{'; 跳过明显的函数体 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\userplayer.cpp(8): error C3254: 'Player' : class contains explicit override '{ctor}' 但确实不是从包含函数声明 1>c 的接口派生的:
c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\player.h(18) : 参见 'Player::Player' 1>c:\users\bn\dropbox\myprojects\mysoftware\ 的声明c++\firstproj\firstproj\userplayer.cpp(13): 错误 C3254: 'Player' : 类包含显式覆盖 '{dtor}' 但不是从包含函数声明 1>c:\users\bn\ 的接口派生dropbox\myprojects\mysoftware\c++\firstproj\firstproj\userplayer.cpp(13): 错误 C2838: '{dtor}' : 成员声明中的非法限定名 1>c:\users\bn\dropbox\myprojects\mysoftware\c++ \firstproj\firstproj\userplayer.cpp(13): 错误 C2535: 'Player::~Player(void)' : 成员函数已定义或声明 1>
cpp 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\npcplayer.h(9): error C2504: 'Player' : base class undefined 1>c:\users\bn\dropbox\ myprojects\mysoftware\c++\firstproj\firstproj\userplayer.h(9): error C2504: 'Player': base class undefined 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10 ): 错误 C2059: 语法错误: 'namespace' 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): error C2334: '{'前面的意外令牌;跳过明显的函数体 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.h(35): error C2059: syntax error: 'string' 1>c:\program files (x86) \microsoft visual studio 10.0\vc\include\time.h(35):错误 C2334:'{' 之前的意外标记;跳过明显的函数体 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\pokerround.cpp(16): error C2059: syntax error: 'namespace'

4

1 回答 1

7

可能您在类定义之后缺少分号或头文件中的类似内容,您将其#include放入一些标准头文件上方的一堆其他文件中,这会使一切变得混乱,编译器将事情报告为错误,这些错误只是错误,因为您忘记了一件小事。

仔细检查每个头文件的语法,寻找不匹配的括号或大括号,并确保在需要它们的地方有分号。

于 2012-09-21T01:12:52.233 回答