原报错代码:
class Building;
class GoodGay
{
public:
void visit();
Building * building;
};
class Building
{
friend class GoodGay;
public:
Building();
string m_SittingRoom;
private:
string m_BedRoom;
};
Building::Building(){
m_SittingRoom = "sittingroom";
m_BedRoom = "bedroom";
}
GoodGay::GoodGay(){
building = new Building;
}
void GoodGay::visit(){
cout << "Visiting - " << building->m_SittingRoom << endl;
cout << "Visiting - " << building->m_BedRoom << endl;
}
void test01(){
GoodGay gg;
gg.visit();
}
int main(){
test01();
编译报错:definition of implicitly-decleared ‘GoodGay::GoodGay()’
报错原因:在类外实现构造函数之前没有在类内进行声明
解决办法:在类内加上声明
class GoodGay
{
public:
void visit();
Building * building;
GoodGay();
};