#include <iostream>
using namespace std;
class Building;
class Goodgay
{
public:
Goodgay();
void visit();
~Goodgay();
public:
Building *building;//编译器给指针类型分配4个字节内存空间
//Building building;//未定义类,编译器不知道分配多少内存空间
};
class Building
{
//告诉编译器 goodGay类中的visit成员函数 是Building好朋友,可以访问私有内容
friend void Goodgay::visit();
public:
Building();
~Building();
public:
string m_SittingRoom;
private:
string m_BedRoom;
};
Goodgay::Goodgay()
{
cout << "Goodgay的构造函数调用" << endl;
building = new Building;
}
void Goodgay::visit()
{
cout << "好基友正在访问: " << building->m_SittingRoom << endl;
cout << "好基友正在访问: " << building->m_BedRoom << endl;
}
Goodgay::~Goodgay()
{
cout << "Goodgay的析构函数调用" << endl;
delete building;
}
Building::Building()
{
cout << "Building的构造函数调用" << endl;
m_SittingRoom = "客厅";
m_BedRoom = "卧室";
}
Building::~Building()
{
cout << "Building的析构函数调用" << endl;
}
void test01()
{
Goodgay gg;
gg.visit();
}
int main()
{
test01();
system("pause");
return 0;
}
