C++ 三个班级之间的联系

C++ 三个班级之间的联系,c++,associations,C++,Associations,我有2个A、B类,如下所示: class A{ public: int size; A(int s){size=s;} }; class B{ B(int d):A(d){} }; 我需要知道如何定义另一个类C,以便B类可以更新A类中的大小(或任何值),但C类可以访问A类中的更新值。简单地说,编写另一个继承自B类的类C。 因此,class B也可以访问class A数据成员。您可以使用公共/受保护或私有继承。但是B类:A类应仅为公共/受保护 然后在类B中编写set方法(以便类B可

我有2个A、B类,如下所示:

class A{
public:
   int size;
   A(int s){size=s;}
};

class B{
B(int d):A(d){}
};

我需要知道如何定义另一个类C,以便B类可以更新A类中的大小(或任何值),但C类可以访问A类中的更新值。

简单地说,编写另一个继承自B类的类C。 因此,
class B
也可以访问
class A
数据成员。您可以使用公共/受保护或私有继承。但是
B类:A类
应仅为公共/受保护

然后在
类B
中编写set方法(以便类B可以更新大小),并在
类C
中获取方法(类C可以访问类A中更新的值)

您应该相应地创建指针和类型case


您可以使用单例模式来维护单个对象(实例)。这取决于您的需求。

我希望我理解正确,但在我看来,您可以从A继承C,这样您就可以在它更新时访问它的数据。或者,您可以创建类型为a的C的数据成员,并在a中实现getter,必要时从C调用。例如:

class C {
private:
    A a;
public:
    void foo() {
        a.getSize();
    }
}

希望有帮助

这没有任何意义
size
是公共的,因此可以从任何地方访问
A
对象<代码>B
似乎与此无关,而且在书面上是无效的。它应该从
A
派生吗?若然,原因为何?您到底希望类之间的关系是什么?当您需要访问
A
的成员时,您遇到了什么问题?@user13676:问题解决了吗?我应该提到的是,类C和B是独立的,不能相互继承(想想服务器不受信任的客户端和服务器类)。但是,两者都可以访问A,B可以对其进行更新。如果是这样,只需创建B或A的对象,并编写一个包装器来获取A中的方法(或者只需调用A的getter方法)。因为在B中有setter方法,所以也可以从B访问。