#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的定义顺序