C++友元类举例说明,如何通过友元类,设置友元类的变量
时间: 2024-10-25 11:08:29 浏览: 12
在C++中,友元类是一种特殊类型的类,它允许一个类访问另一个类的私有和受保护成员。友元类通过使用`friend`关键字声明。下面是一个简单的例子来说明如何使用友元类:
```cpp
#include <iostream>
// 声明一个类,我们称其为 "FriendClass"
class FriendClass {
public:
// 声明一个私有成员变量
int privateVar;
// 构造函数
FriendClass(int var) : privateVar(var) {}
// 一个可以公开的方法,用来暴露这个私有变量的访问方法
void setPrivateVar(int var) {
privateVar = var;
}
};
// 我们创建一个新的类,我们将这个类设为FriendClass的友元类
class MyClass {
public:
void accessFriendClassVar() {
// 通过友元关系,访问FriendClass类的私有变量
std::cout << "The value of privateVar in FriendClass is: " << FriendClass::privateVar << std::endl;
}
};
int main() {
FriendClass friendObj(10); // 创建一个FriendClass对象
MyClass myObj; // 创建一个MyClass对象
myObj.accessFriendClassVar(); // 调用MyClass的访问方法,从而访问FriendClass的私有变量
return 0;
}
```
在上面的例子中,我们创建了一个名为`FriendClass`的类,它有一个私有成员变量`privateVar`。然后我们创建了一个名为`MyClass`的类,它声明了与`FriendClass`的友元关系。这意味着`MyClass`可以访问`FriendClass`的所有成员(包括私有成员)。在`MyClass`中,我们创建了一个方法`accessFriendClassVar()`,它通过友元关系访问了`privateVar`。
需要注意的是,使用友元关系需要谨慎。过度使用友元可能导致代码难以理解和维护。通常,只有在确实需要一个类访问另一个类的私有或受保护成员时,才应该使用友元关系。在其他情况下,更合适的解决方案可能是将成员变量改为公共或受保护的接口,或者使用继承和多态来实现相似的功能。
阅读全文