//#include<iostream> //using namespace std; // //class Stu //{ //protected: //private: // int age; // void fun() // { // age = 12; // cout << age << endl; // } //public: //友元 的声明不受修饰符的限制 // friend void fun1(); //声明友元函数 // //将fun1()声明为Stu类的友元函数,这样fun1()函数就能够调用Stu类中的私有成员了 // //友元函数可以调用类内的private成员和protected成员, // //换句话说,就是类内的成员对于友元函数全部公开 //protected: //一个类可以有多个友元 // friend class Teach; //声明一个友元类 //}; //友元的缺点:破坏了类的封装性,不到迫不得已不使用 //void fun1() //{ // Stu stu1; // stu1.fun(); //} // //class Teach //在两个毫不相干的类,若一个类想调用另一个类的私有和受保护成员只能通过友元去调用 //{ //public: // Stu stu2; // // // void fun2() // { // stu2.fun(); // } //}; // //int main() //{ // /*Stu stu3; // stu3.fun(); 主函数并不是类内的友元函数,所以仍无法调用类中的私有成员*/ // fun1(); //需要在主函数中调用类的友元函数间接调用类的私有成员 // Teach teach; // teach.fun2(); // // return 0; //}
标签:友元,std,函数,age,笔记,C++ From: https://www.cnblogs.com/kun-sir/p/16923628.html