在C++中,友元函數可以訪問類的私有(private)和保護(protected)成員,但不能直接訪問類的友元類。然而,您可以通過以下方法實現類似的功能:
下面是一個示例:
#include <iostream>
class OriginalClass {
public:
OriginalClass(int value) : value_(value) {}
friend class FriendClass; // 聲明FriendClass為OriginalClass的友元類
private:
int value_;
};
class FriendClass {
public:
void accessOriginalClassMembers(OriginalClass &obj) {
std::cout << "Original class value: " << obj.value_ << std::endl;
}
};
int main() {
OriginalClass obj(42);
FriendClass friendObj;
friendObj.accessOriginalClassMembers(obj); // 訪問OriginalClass的私有成員
return 0;
}
在這個示例中,OriginalClass
將FriendClass
聲明為友元類,這樣FriendClass
中的accessOriginalClassMembers
函數就可以訪問OriginalClass
的私有成員value_
。