//4.4.3   ��Ա��������Ԫ



#include <iostream>

class Building;

class GoodGay
{
public:
	GoodGay();

	void visit();                   //��visit�������Է���Building��˽�г�Ա

	void visit2();                 //��visit2���������Է���Building��˽�г�Ա
	

	Building* building;
};

class Building
{
	//���߱�����  GoodGay���µ�visit��Ա������Ϊ����ĺ����ѣ����Է���˽�г�Ա
	friend void GoodGay::visit();

public:

	Building();

public:
	
	std::string m_SittingRoom;        //����

private:

	std::string m_BedRoom;         //����

};

//����ʵ�ֳ�Ա����

Building::Building()
{
	this->m_BedRoom = "����";
	this->m_SittingRoom = "����";
}

GoodGay::GoodGay()
{
	building = new Building;
}

void GoodGay::visit()
{
	std::cout << "visit�������ڷ���:" << building->m_SittingRoom << std::endl;

	std::cout << "visit�������ڷ���:" << building->m_BedRoom << std::endl;
}

void GoodGay::visit2()
{
	std::cout << "visit2�������ڷ���:" << building->m_SittingRoom << std::endl;

	//std::cout << "visit2�������ڷ���:" << building->m_BedRoom << std::endl;
}

void test01()
{
	GoodGay gg;
	gg.visit();
	gg.visit2();
}

int main()
{
	test01();
	

	system("pause");

	return 0;
}