溫馨提示×

C++友元函數支持友元類嗎

c++
小樊
103
2024-11-09 01:03:26
欄目: 編程語言

在C++中,友元函數可以訪問類的私有(private)和保護(protected)成員,但不能直接訪問類的友元類。然而,您可以通過以下方法實現類似的功能:

  1. 在友元類中定義一個友元函數,該函數可以訪問原始類的私有和保護成員。
  2. 將需要訪問的原始類的對象作為友元類對象的成員變量。

下面是一個示例:

#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;
}

在這個示例中,OriginalClassFriendClass聲明為友元類,這樣FriendClass中的accessOriginalClassMembers函數就可以訪問OriginalClass的私有成員value_。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女