一、全局函数作为友元函数
二、类作为友元类
三、成员函数作为友元函数
一、全局函数作为友元函数
- 语法:friend+函数声明(函数类型+函数名称)
//家建筑 class Building { //有一个全局函数 作为本类的友元函数,可以继续访问到私有内容 friend void goodGay(Building& building); public: Building() { this->m_BedRoom = "卧室"; } private: //卧室 string m_BedRoom; };
二、类作为友元类
1.语法:friend+类声明(class+类名称)
2.
class goodGay { public: goodGay(); void visit(); private: Building* building; }; //家建筑 class Building { //告诉编译器 goodGay类是本类的好朋友,可以访问到里面私有成员 friend class goodGay; public: Building(); private: //卧室 string m_BedRoom; };
三、成员函数作为友元函数
1.写法:friend+成员函数声明(函数类型+类名称+::+成员函数名称)
2.
class goodGay { public: goodGay(); void visit();//visit 可以访问到Building中私有属性 void visit2();//visit2 不可以访问到Building中私有属性 private: Building* building; }; //家建筑 class Building { friend void goodGay::visit(); public: Building(); public: //客厅 string m_SittingRoom; private: //卧室 string m_BedRoom; };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)