C++学习笔记——友元函数

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

 

posted @ 2022-11-24 22:11  努力的阿坤  阅读(37)  评论(0)    收藏  举报