C++ 类友元关系:如何用一个类控制另一个类的私有成员
以下是一个示例代码,展示了如何使用友元类来控制另一个类的私有成员:
#include <iostream>
using namespace std;
class A; // 声明类A,使得类B可以访问类A的私有成员
class B {
public:
void controlA(A& a); // 在类B中定义控制类A的函数
};
class A {
friend class B; // 声明类B为类A的友元类
private:
int num;
public:
A(int n=0) : num(n) {}
};
void B::controlA(A& a) { // 在类B中实现控制类A的函数
a.num += 1;
}
int main() {
A a(10);
B b;
cout << '原始值:' << a.num << endl;
b.controlA(a);
cout << '控制后的值:' << a.num << endl;
return 0;
}
在上面的代码中,我们定义了两个类 A 和 B。类 B 被声明为类 A 的友元类。类 A 中有一个私有成员变量 num。在类 B 中,我们定义了一个控制类 A 的函数 controlA。该函数可以访问类 A 中的私有成员变量 num,从而可以控制类 A 的行为。
在主函数中,我们创建了一个类 A 的对象 a 和一个类 B 的对象 b。我们首先输出了类 A 对象的原始值,然后调用类 B 对象的控制函数来改变类 A 对象的值。最后,我们再次输出了类 A 对象的值,以验证控制函数是否有效。
输出结果为:
原始值:10
控制后的值:11
通过友元类,我们可以实现一个类对另一个类私有成员的访问和控制,从而在不改变原有类的结构的情况下扩展类的功能。
原文地址: https://www.cveoy.top/t/topic/n7AC 著作权归作者所有。请勿转载和采集!