error C2146:语法错误:缺少“)(在标识符“)的前面)
error C2146: 语法错误: 缺少“;”(在标识符“******”的前面)这个问题可能由以下原因导致:
1. 头文件互相包含:如果存在两个类的头文件,其中一个类包含了另一个类的头文件且这两个类中的某一个类又使用了另一个类的对象,可能会导致这个错误。解决办法是在使用类的指针时,可以在CPP文件中包含类的头文件,而非在头文件中。
2. 没有包含要定义的头文件:如果没有包含需要定义的头文件,也可能会导致这个错误。解决办法是在GoodGay类之前先声明一下,如:class Building。
3. 编译器设置问题:例如,属性=》配置属性=》高级=》编译为=》编译为 C++ 代码(/TP) /D_WIN32_WINNT=-0x0400 去掉,可能会解决这个问题。
需要注意的是,头文件包含其实是一件很烦琐的工作,不但我们看着累,编译器编译的时候也很累,再加上头文件中常常出现的宏定义。感觉各种宏定义的展开是非常耗时间的,远不如自定义函数来得速度。因此,如果可以不包含头文件,那就不要包含了。这时候前置声明可以解决问题。
如有侵权请及时联系我们处理,转载请注明出处来自
推荐文章