C++基類(lèi)的友元函數(shù)是什么

c++
小樊
85
2024-08-11 11:37:36

C++中的友元函數(shù)是指可以訪問(wèn)類(lèi)的私有成員的非成員函數(shù)或者類(lèi)的成員函數(shù)?;?lèi)的友元函數(shù)是指可以訪問(wèn)基類(lèi)的私有成員的非成員函數(shù)或者派生類(lèi)的成員函數(shù)。

在C++中,如果派生類(lèi)需要訪問(wèn)基類(lèi)的私有成員,可以通過(guò)將基類(lèi)的友元函數(shù)聲明為派生類(lèi)的友元函數(shù)來(lái)實(shí)現(xiàn)。這樣派生類(lèi)的成員函數(shù)就可以訪問(wèn)基類(lèi)的私有成員,從而實(shí)現(xiàn)對(duì)基類(lèi)私有數(shù)據(jù)的訪問(wèn)。

基類(lèi)的友元函數(shù)的聲明和定義與普通的友元函數(shù)相同,只是在聲明和定義時(shí)需要在函數(shù)前面加上基類(lèi)的類(lèi)名和作用域解析符號(hào)"::"。

示例代碼如下:

#include <iostream>

class Base {
private:
    int privateData;

    friend void friendFunction(Base& b); // 聲明友元函數(shù)
};

void friendFunction(Base& b) { // 定義友元函數(shù)
    std::cout << "Accessing private data of Base class: " << b.privateData << std::endl;
}

int main() {
    Base b;
    friendFunction(b); // 調(diào)用友元函數(shù)
    return 0;
}

在上面的示例中,friendFunctionBase類(lèi)的友元函數(shù),可以訪問(wèn)Base類(lèi)的私有成員privateData。在main函數(shù)中,我們通過(guò)調(diào)用friendFunction函數(shù)來(lái)訪問(wèn)Base類(lèi)的私有成員。

0