首页 > 编程语言 >C++学习笔记——友元函数

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

时间:2022-11-24 22:23:59浏览次数:47  
标签:友元 std 函数 age 笔记 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;
//}

 

标签:友元,std,函数,age,笔记,C++
From: https://www.cnblogs.com/kun-sir/p/16923628.html

相关文章

  • C++学习笔记——构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——析构函数
    //#include<iostream>//usingnamespacestd;////classFive//{//public://intn;//Five()//定义一个构造函数//{//cout<<"调用......
  • C++学习笔记——带参构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——this指针
    //#include<iostream>//usingnamespacestd;////classSix//{//public://inta;//Six(inta)//{//用this指针来区分局部变量和......
  • C++学习笔记——常函数
    //#include<iostream>//usingnamespacestd;////classSeven//{//public:////构造函数和析构函数不能定义为常函数//inta;////Seven()//{//......
  • OpenCV之C++经典案例
    四个案例实战1、刀片缺陷检测2、自定义对象检测3、实时二维码检测4、图像分割与色彩提取1、刀片缺陷检测问题分析解决思路尝试二值图像分析模板匹配技术代......
  • Java基础学习笔记(菜鸟教程版)
    Java基础学习笔记(菜鸟教程版)入门概览第一个Java程序helloworldpublicclassHello{publicstaticvoidmain(String[]args){/*pubic-->访问修饰符static-......
  • 桥接模式javac++
    [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。     packagetest9;publicclassBusi......
  • 组合模式java+c++
    [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。    packagetest10;publicabstractclassAbstractFile{publicabstrac......
  • 装饰模式java+c++
    [实验任务一]:手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexP......