C++中的友元函數是指可以訪問類的私有成員的非成員函數或者類的成員函數。基類的友元函數是指可以訪問基類的私有成員的非成員函數或者派生類的成員函數。
在C++中,如果派生類需要訪問基類的私有成員,可以通過將基類的友元函數聲明為派生類的友元函數來實現。這樣派生類的成員函數就可以訪問基類的私有成員,從而實現對基類私有數據的訪問。
基類的友元函數的聲明和定義與普通的友元函數相同,只是在聲明和定義時需要在函數前面加上基類的類名和作用域解析符號"::"。
示例代碼如下:
#include <iostream>
class Base {
private:
int privateData;
friend void friendFunction(Base& b); // 聲明友元函數
};
void friendFunction(Base& b) { // 定義友元函數
std::cout << "Accessing private data of Base class: " << b.privateData << std::endl;
}
int main() {
Base b;
friendFunction(b); // 調用友元函數
return 0;
}
在上面的示例中,friendFunction
是Base
類的友元函數,可以訪問Base
類的私有成員privateData
。在main
函數中,我們通過調用friendFunction
函數來訪問Base
類的私有成員。