1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- //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;
- }
|