友元函數允許非成員函數存取私有成員,並在多重繼承中發揮作用,允許衍生類別函數存取基底類別的私有成員。
C 友元函數詳解:友元函數在多重繼承中的作用
友元函數介紹
友元函數是一種特殊函數,被賦予存取私有成員的權限,而無需該類別的物件。它通常用於允許非成員函數存取私有資料。
語法:
class ClassName { ... // 类成员 friend FunctionName; };
友元函數在多繼承中的作用
在多重繼承中,一個衍生類可以從多個基類繼承資料成員和方法。如果衍生類別中的函數需要存取基底類別的私有成員,則可以將該函數宣告為友元函數。
實戰案例
假設我們有一個Base
類別和一個從Base
繼承的衍生類別Derived
:
class Base { private: int data; }; class Derived : public Base { public: void printData() { std::cout << data << std::endl; } friend void printData2(Derived& obj); };
由於data
是Base
的私有成員,Derived
中的printData()
函數無法直接存取它。因此,我們將printData2()
函數宣告為Derived
的友元函數:
void printData2(Derived& obj) { std::cout << obj.data << std::endl; }
現在,printData2()
可以存取Derived
中私有的data
成員。
使用方式:
int main() { Derived obj; obj.printData(); printData2(obj); }
#輸出:
0 0
以上是C++ 友元函數詳解:友元函數在多重繼承中的作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!