3个班级之间的关联

时间:2015-03-30 14:42:15

标签: c++ associations

我有两个A,B类如下:

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

希望有所帮助!

答案 1 :(得分:0)

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

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

您应该创建一个指针并相应地键入大小写。

OR

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