C++可以友元另一个类的对象吗?请举例说明
时间: 2024-10-25 20:07:38 浏览: 23
C++面试知识点.pdf
是的,C++支持友元关系,这意味着一个类可以“友好地”对待另一个类的对象。这种关系通常用于增强两个类之间的交互和协作。
要使用友元关系,你可以使用关键字 `friend`。下面是一个简单的例子来说明如何使用友元:
```cpp
#include <iostream>
class B; // 声明 B 类
class A {
public:
void show() {
std::cout << "A's show function" << std::endl;
}
friend class B; // 声明 B 类为友元类
};
class B {
public:
void print() {
std::cout << "B's print function" << std::endl;
}
};
int main() {
A a; // 创建 A 类对象
B b; // 创建 B 类对象
// 使用友元关系调用 A 类的成员函数
a.show(); // 输出 "A's show function"
b.print(); // 输出 "B's print function"
return 0;
}
```
在这个例子中,`A` 类声明了 `B` 类为友元类。这意味着 `B` 类可以访问 `A` 类的私有和保护成员。这在某些情况下非常有用,例如当两个类需要共享某些功能,但又不想让它们的其他使用者也能访问这些功能时。注意,声明友元关系后,类的定义通常在声明之前完成,以确保在调用成员函数时能够正确解析。
阅读全文