一叶枫残 发表于 2021-2-18 21:29:41

C++(14th for four):友元关系

友元关系
我们讲了,设置了private和protected的类无法被其他的类给访问到,但有些类却不得不访问这些类的成员该怎么办呢,这时候要使用到friend class
#include <iostream>

class Computer
{
public:
        Computer();
        void cout_num();
private:
        int num;
        friend class Ipad;
};

class Ipad:public Computer
{
public:
        void cout_num( Computer *p );
};

Computer::Computer()
{
        num = 11;
}

void Computer::cout_num()
{
        std::cout << num;
}

void Ipad::cout_num( Computer *p )
{
        std::cout <<"我从Ipad中输出p:" <<p->num << std::endl;
        p->num = 12;
}

int main()
{
        Ipad myipad;
        Computer mycomputer;
        myipad.cout_num( &mycomputer );
        mycomputer.cout_num();
       
        return 0;
}
首先
friend class Ipad;
我们使用了friend class来使得Ipad可以访问到Computer内的private,然后使用
myipad.cout_num( &mycomputer );
来输出并修改private中num,然后用Computer里面的cout_num方法输出num,结果是成功的,num数被修改成了12
我从Ipad中输出p:11
12
页: [1]
查看完整版本: C++(14th for four):友元关系