C++友元函數(shù)如何訪問(wèn)私有成員

c++
小樊
81
2024-11-09 00:55:26

在C++中,友元函數(shù)(friend function)可以訪問(wèn)類的私有成員。為了實(shí)現(xiàn)這一點(diǎn),您需要將友元函數(shù)聲明為類的友元,然后在類內(nèi)部定義該函數(shù)。這里有一個(gè)簡(jiǎn)單的示例:

#include <iostream>
using namespace std;

class MyClass {
private:
    int privateMember;

public:
    MyClass(int value) : privateMember(value) {}

    // 聲明友元函數(shù)
    friend void accessPrivateMember(MyClass &obj);
};

// 定義友元函數(shù)
void accessPrivateMember(MyClass &obj) {
    cout << "Private member value: " << obj.privateMember << endl;
}

int main() {
    MyClass myObj(10);

    // 通過(guò)友元函數(shù)訪問(wèn)私有成員
    accessPrivateMember(myObj);

    return 0;
}

在這個(gè)示例中,我們定義了一個(gè)名為MyClass的類,其中包含一個(gè)私有成員變量privateMember。然后,我們聲明了一個(gè)名為accessPrivateMember的友元函數(shù),它可以訪問(wèn)MyClass的私有成員。在main函數(shù)中,我們創(chuàng)建了一個(gè)MyClass對(duì)象,并通過(guò)調(diào)用accessPrivateMember函數(shù)來(lái)訪問(wèn)其私有成員。

0