码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 友元类 与 友元类派生类

时间:2017-07-17 21:49:16      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:虚函数   不为   void   友元   return   说明   派生类   turn   private   

定义:

当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。

用法:

在A类中加入:

friend class B;

 

下面这个程序说明了友元类与友元派生类的权限。

class A { 
public:
   friend class FriendA; 
private:
    int a;
};

class FriendA {
public:
    void print(A& ca) { //因为是友元类,所以可以访问A类的私有成员。
        ca.a = 3;
        std::cout << ca.a << std::endl;
    }   
};

class FriendA1 : public FriendA {
public:
    void print1(A& ca) { //编译错误,继承后新定义的函数并不带有友元性质。
        ca.a = 4;
        std::cout << ca.a << std::endl;
    }   
};

int main() {
    A a;
    FriendA fa; 
    fa.print(a);
    FriendA1 fa1;
    fa1.print(a);//父类的该函数为友元函数。                                                                                                                                             
    //fa1.print1(a);
    return 0;
}

//总结,也就是声明友元类时,友元类中所有的函数变为了友元函数。 而后面派生新加的函数则不为友元函数。
//重写函数、虚函数也不行。

 

c++ 友元类 与 友元类派生类

标签:虚函数   不为   void   友元   return   说明   派生类   turn   private   

原文地址:http://www.cnblogs.com/chenhuan001/p/7197252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!