所以我正在做一些简单的C++练习,我注意到了一个有趣的壮举.归结为裸机可以尝试编译以下代码:
class nice { public: nice() {} }; int main() { nice n; return 0; };
结果是编译错误,如下所示:
.cpp: In function ‘int main()’: .cpp:11: error: expected `;' before ‘n’ .cpp:11: warning: statement is a reference, not call, to function ‘nice’ .cpp:11: warning: statement has no effect
这是在Max OS X上使用常规g ++,我的一些朋友也试过Ubuntu,产生相同的结果.
这个专长似乎在于"好"这个词,因为重构它可以让我们编译.现在,我找不到C++或C关键字列表中的"好",所以我想知道这里是否有人有想法?
还有,推杆
class nice n;
代替
nice n;
解决了这个问题.
PS我是一个相对的C++新手,来自ActionScript/.NET/Java/Python世界.
更新:
对,我的坏,我也有
#include
在顶部,这似乎是问题的根源,因为没有它一切正常.
也许问题是由nice
libc中的函数引起的.它类似于尝试命名您的班级printf
.