zoukankan      html  css  js  c++  java
  • C++ 友元类,友元函数

    //友元函数  友元类
    #include<iostream>
    using namespace std;
    
    
    
    class PointB
    {
    public:
        friend class PointC;
        //类PointC是类PointB的友元类--意味着类PointC对象可以调用PointB中所有的成员
        void Test(){
            ;
        }
    private:
        int x;
        int y;
    };
    
    class PointC
    {
    public:
        void printfPointB(){
            //调用其友元类的私有属性
            cout << pb.y << endl;
            //调用PointB的成员函数
            pb.Test();
        }
    private:
        PointB pb;
    };
    
    
    class PointA
    {
    public:
        //友元函数
        friend void Friendfun(PointA* pin);
        int GetA(){
            return a;
        }
        int GetB(){
            return b;
        }
    private:
        int a;
        int b;
    };
    
    //friend 关系户
    //const(C语言)冒牌货
    //register cpu身边的小太监(寄存器)
    //typedef 混号王(起别名)
    
    
    //友元函数
    //友元必须有一个参数,就是友元函数所在类的对象指针(不然无法访问对象的私有属性)
    //友元函数是一个全局函数
    //友元函数破坏类的封装性
    void Friendfun(PointA* pin){
        //可以直接访问类的私有成员
        pin->a = 10;
        pin->b = 20;
    }
    
    
    void protectA(){
        PointA *p1 = new PointA();
        Friendfun(p1);
        cout << "a=" << p1->GetA() << ";b=" << p1->GetB() << endl;
        if (p1!=NULL)
        {
            delete p1;
        }
    }
    
    void main(){
        protectA();
        system("pause");
    }
  • 相关阅读:
    团队-爬取豆瓣电影TOP250-成员简介及分工
    结对-贪吃蛇游戏-需求分析
    个人编程作业
    团队项目编程作业
    课后作业-阅读任务-阅读提问-1
    团队-爬虫豆瓣电影TOP250-成员简介及分工
    结对-英文词频检测程序-需求分析
    对软件工程课程的期望
    自我介绍
    作业0
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5613199.html
Copyright © 2011-2022 走看看