在C ++中共享类之间的属性

时间:2017-03-14 14:50:57

标签: c++ class attributes

假设我有一个具有许多属性的类

class A {
private:
    int x1;
    int x2;
    ....
    int xn;
}

我希望与其他类共享一些组属性。示例class Bclass C,... class B可以访问x1, x3进行设置/获取,C类可以访问x1, x2, xn进行设置/获取。

我的解决方案:

解决方案1 ​​class A是单身人士。如果class Bclass C想要在class A中设置/获取属性,请使用A::GetInstance()(例如)来设置/获取属性。使用此解决方案,您无需关心共享class B(或class C)的属性。我认为,使用 singleton 时必须注意多线程问题。

解决方案2 我使用类来共享。

示例

class SharedB {
public
    int x1;
    int x3;
}

class SharedC {
public
    int x1;
    int x2;
    int xn;
}

class SharedBclass SharedC也将是class Bclass C可以使用的单身。这个解决方案的优点是我可以控制我分享的内容。但缺点是使用单线程,我认为多线程不安全。

所以我的问题是解决我的问题更好线程安全

感谢您的回答。

0 个答案:

没有答案