#include<iostream>
#include<string>
using namespace std;
**class Building;**
class goodgay {
public:
goodgay() ;
void visit();
Building * building;
};
class Building {
public:
Building();
string sittingroom;
private:
string bedroom;
};
Building::Building() {
sittingroom = "客厅";
bedroom = "卧室";
}
goodgay::goodgay() {
building = new Building;
}
void goodgay::visit() {
cout << "goodgay正在访问:" << building->sittingroom << endl;
}
void test01() {
goodgay g;
g.visit();
}
int main() {
test01();
}
由于在类goodgay中用了类Building中的对象building,而class Building的定义在class goodgay之后,会报错:“building”未声明的标识符。
解决办法:在class good gay之前添加“class Building;”作为声明,或交换Building和goodgay的定义顺序
本文探讨了C++编程中因类定义顺序不当导致的编译错误,并提供了解决方案。通过调整类之间的声明顺序或提前声明依赖的类,可以避免‘未声明的标识符’这类错误。
1498

被折叠的 条评论
为什么被折叠?



