C 乙個類訪問另乙個類的私有成員和保護成員

2021-09-10 02:20:45 字數 614 閱讀 8410

友元類

class a

friend class b;

private:    int aa;

class b

public:    

void output()    

cout << a.aa << endl;

private:    a a;

使用友元類時注意:

(1) 友元關係不能被繼承。

(2) 友元關係是單向的,不具有交換性。若類b是類a的友元,類a不一定是類b的友元,要看在類中是否有相應的宣告。

(3) 友元關係不具有傳遞性。若類b是類a的友元,類c是b的友元,類c不一定是類a的友元,同樣要看類中是否有相應的申明

注意事項:

1.友元可以訪問類的私有成員。

2.只能出現在類定義內部,友元宣告可以在類中的任何地方,一般放在類定義的開始或結尾。

3.友元可以是普通的非成員函式,或前面定義的其他類的成員函式,或整個類。

4.類必須將過載函式集中每乙個希望設為友元的函式都宣告為友元。

5.友元關係不能繼承,基類的友元對派生類的成員沒有特殊的訪問許可權。如果基類被授予友元關係,則只有基類具有特殊的訪問許可權。該基類的派生類不能訪問授予友元關係的類。

c 中類外訪問乙個類的私有成員

正常來說,類外無法訪問類內的private成員,只能通過類內成員訪問private成員,在類外,無論是通過類指標還是類物件都無法直接訪問類中的private成員 c 類中的私友成員是不能通指標操作的。include using namespace std class a int main void ...

乙個類作為另乙個類的資料成員

寫程式的時候希望乙個類能夠訪問另乙個類的資料成員 protected,private 例如類a要訪問類b中的資料成員。1.保持封裝性 可以通過在被訪問的類 b 中定義訪問許可權為public的函式,用來返回資料成員的引用。2.繼承 當乙個派生類從父類繼承時,父類的所有成員就成為子類的成員,因此可以將...

C 乙個類呼叫另乙個類的成員變數 成員函式

有時候,兩個類之間並沒有繼承的關係,但是其中乙個類需要引用另乙個類中的成員變數或者成員函式。怎樣辦到呢?假設已經新建了兩個類a b。class a class b 現在需要在類a的成員函式中呼叫類b的成員變數b nadd b x,使得a nadd與b nadd相加,那麼只需要在類a的.cpp檔案中包...