Ⅰ c++中可不可以在一個類中訪問另一個類的私有成員
可以,只要定義該類為另一個類的友元類即可。
友元類:
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)通過友元類訪問矩形類私有數據擴展閱讀:
友元類使用注意事項:
1、友元可以訪問類的私有成員。
2、只能出現在類定義內部,友元聲明可以在類中的任何地方,一般放在類定義的開始或結尾。
3、友元可以是普通的非成員函數,或前面定義的其他類的成員函數,或整個類。
4、類必須將重載函數集中每一個希望設為友元的函數都聲明為友元。
5、友元關系不能繼承,基類的友元對派生類的成員沒有特殊的訪問許可權。如果基類被授予友元關系,則只有基類具有特殊的訪問許可權。該基類的派生類不能訪問授予友元關系的類。
參考資料來源:網路-友元類