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
函數中,我們創建了一個 ClassA
對象和一個 ClassB
對象,并通過 ClassB
訪問了 ClassA
的成員。