··················本来要学习的吃瓜吃了一下午
目录
- #include<iostream>
- using namespace std;
- class Building
- {
- friend void goodGay(Building* building);
- //好朋友,可以访问buiding的全部成员
- public:
- Building()
- {
- m_SittingRoom = "客厅";
- m_BedRoom = "卧室";
- }
- string m_SittingRoom;
- private:
- string m_BedRoom;
- };
- void goodGay(Building *building)
- {
- cout << "好基友的全局函数 正在访问:" << building->m_SittingRoom << endl;
- cout << "好基友的全局函数 正在访问:" << building->m_BedRoom << endl;
- }
- void test01()
- {
- Building bding;
- goodGay(&bding);
- }
- int main()
- {
- test01();
- system("pause");
- return 0;
- }
- #include<iostream>
- #include<string>
- using namespace std;
- class Building;
-
- class Goodgay
- {
- public:
- Goodgay();
- void visit();//参观函数,访问BUIDING中的属性
- Building * building;
- };
-
- class Building
- {
- friend Goodgay;//GoodGAY类是BUILDING类的好朋友,可以访问BUILDING的私有成员
- public:
- Building();
- string m_SittingRoom;
- private:
- string m_BedRoom;
- };
-
- Building::Building()//类外写成员函数
- {
- m_SittingRoom = "客厅";
- m_BedRoom = "卧室";
- }
- Goodgay::Goodgay()
- {
- //创建一个建筑物的对象
- building = new Building;//堆区创建一个BUILDING的对象
- //构造函数解决初始化问题,所以?这是初始化?*building指向这个堆区对象
- }
- void Goodgay::visit()
- {
- cout << "好基友类正在访问:" << building->m_SittingRoom << endl;
- cout << "好基友类正在访问:" << building->m_BedRoom << endl;
- }
- void test01()
- {
- Goodgay gg;
- gg.visit();
- }
- int main()
- {
- test01();
- system("pause");
- return 0;
- }
- #include<iostream>
- #include<string>
- using namespace std;
- class Building;
-
- class Goodgay
- {
- public:
- Goodgay();
- void visit();//可以访问Buiding私有
- void visit01();//不可以访问Buiding私有
- Building * building;
- };
-
- class Building
- {
- //friend void visit();这种写法会将VISIT识别为一个全局函数,而不是Goodgay中的成员函数
- friend void Goodgay::visit();
- public:
- Building();
- string m_SittingRoom;
- private:
- string m_BedRoom;
- };
-
- Building::Building()//类外写成员函数
- {
- m_SittingRoom = "客厅";
- m_BedRoom = "卧室";
- }
- Goodgay::Goodgay()
- {
- //创建一个建筑物的对象
- building = new Building;//堆区创建一个BUILDING的对象,返回指针
- //构造函数解决初始化问题,所以?这是初始化?building指向这个堆区对象
- }
- void Goodgay::visit()
- {
- cout << "好基友类visit 正在访问:" << building->m_SittingRoom << endl;
- cout << "好基友类visit 正在访问:" << building->m_BedRoom << endl;
- }
- void Goodgay::visit01()
- {
- cout << "好基友类visit01 正在访问:" << building->m_SittingRoom << endl;
- //cout << "好基友类visit01 正在访问:" << building->m_BedRoom << endl;
- }
- void test01()
- {
- Goodgay gg;
- gg.visit();
- gg.visit01();
- }
- int main()
- {
- test01();
- system("pause");
- return 0;
- }
想让谁访问,就让谁FRIEND