溫馨提示×

C++友元類能訪問哪些成員

c++
小樊
81
2024-11-08 22:29:23
欄目: 編程語言

C++中的友元類(friend class)是一種特殊的類關系,允許一個類訪問另一個類的私有(private)和保護(protected)成員。這種關系是通過在類定義中聲明另一個類為友元來建立的。友元類可以訪問被聲明為友元的類的所有成員,包括私有和保護成員。

以下是一個簡單的示例,展示了如何使用友元類:

#include <iostream>

class ClassA {
private:
    int privateMember;

protected:
    int protectedMember;

public:
    ClassA(int value) : privateMember(value), protectedMember(value * 2) {}

    // 聲明 ClassB 為友元類
    friend class ClassB;
};

class ClassB {
public:
    void accessMembers(ClassA &obj) {
        // 訪問 ClassA 的私有成員
        std::cout << "Private member: " << obj.privateMember << std::endl;

        // 訪問 ClassA 的保護成員
        std::cout << "Protected member: " << obj.protectedMember << std::endl;
    }
};

int main() {
    ClassA obj(10);
    ClassB objB;

    // 通過友元類訪問 ClassA 的成員
    objB.accessMembers(obj);

    return 0;
}

在這個示例中,ClassA 聲明 ClassB 為友元類,因此 ClassB 可以訪問 ClassA 的私有和保護成員。在 main 函數中,我們創(chuàng)建了一個 ClassA 對象和一個 ClassB 對象,并通過 ClassB 訪問了 ClassA 的成員。

0