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;
}

//總結,也就是聲明友元類時,友元類中所有的函數變為了友元函數。 而后面派生新加的函數則不為友元函數。
//重寫函數、虛函數也不行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM