以下是一个示例代码,展示了如何使用友元类来控制另一个类的私有成员:

#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

通过友元类,我们可以实现一个类对另一个类私有成员的访问和控制,从而在不改变原有类的结构的情况下扩展类的功能。

C++ 类友元关系:如何用一个类控制另一个类的私有成员

原文地址: https://www.cveoy.top/t/topic/n7AC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录