📅  最后修改于: 2023-12-03 14:39:38.437000             🧑  作者: Mango
在 C++ 中,友元关键字(friend
)允许一个函数或类访问另一个类的私有成员。这样可以增加程序的灵活性。使用友元关键字时,需要注意不要破坏封装性。
class ClassB;
class ClassA {
friend class ClassB; // ClassB 是 ClassA 的友元类
friend void function(); // 函数是 ClassA 的友元函数
};
通过友元类,一个类可以访问另一个类的私有成员。下面是一个示例:
class ClassB {
public:
void print(ClassA &a) {
// 可以访问 ClassA 类的私有成员
std::cout << "x = " << a.x << std::endl; // 访问 ClassA 中的私有成员 x
}
};
class ClassA {
private:
int x = 10; // ClassA 的私有成员
friend class ClassB; // ClassB 是 ClassA 的友元类
public:
int getX() { return x; }
};
int main() {
ClassA a;
ClassB b;
b.print(a);
return 0;
}
代码输出:
x = 10
通过友元函数,可以使函数访问一个类的私有成员。下面是一个示例:
class ClassA {
private:
int x = 10; // ClassA 的私有成员
friend void print(ClassA &a); // print() 是 ClassA 的友元函数
public:
int getX() { return x; }
};
void print(ClassA &a) {
// 可以访问 ClassA 类的私有成员
std::cout << "x = " << a.x << std::endl; // 访问 ClassA 中的私有成员 x
}
int main() {
ClassA a;
print(a);
return 0;
}
代码输出:
x = 10
使用友元关键字时,需要注意以下几点:
友元关键字(friend
)允许一个函数或类访问另一个类的私有成员。通过友元类和友元函数可以实现这一点。在使用时,需要注意避免滥用和破坏封装性。