zoukankan      html  css  js  c++  java
  • c++ 友元类 与 友元类派生类

    定义:

    当一个类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;
    }

    //总结,也就是声明友元类时,友元类中所有的函数变为了友元函数。 而后面派生新加的函数则不为友元函数。
    //重写函数、虚函数也不行。
  • 相关阅读:
    apt-get
    微博
    字符串操作
    fly
    Oracle数据库只Dual表
    如何配置一个Oracle服务
    排序算法
    排序算法
    排序算法
    ArcEngine几个空间操作
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/7197252.html
Copyright © 2011-2022 走看看