不同类如何共享同一个变量

来源:互联网 发布:悦诗风吟 淘宝店怎么开 编辑:程序博客网 时间:2024/06/06 18:27
我需要共享一个复杂的变量

基类:

class A   
{
  static struct Map{   
  //.....多个变量
  }map[4][4]; //需要共享这个


如何在其子类中共享它。




我试过了简单的变量类型如:int ,在基类中初始化,在子类中是能共享的,但这个复杂的怎么弄?

------解决方案--------------------------------------------------------
如果一定要把Map定义在CAnimal内部,那就这样写:
C/C++ code
class CAnimal{public:    static struct Map    {        int a;        string type;        bool on;    }map[400][400];    static void setMap();};CAnimal::Map CAnimal::map[400][400];void CAnimal::setMap(){    for (int i=0;i<400;++i)        for (int j=0;j<400;++j)        {            map[i][j].a=0;            map[i][j].type="";            map[i][j].on=true;        }}int main(){    CAnimal::setMap();    return 0;}------解决方案--------------------------------------------------------楼主,其实你这个问题没有描述的很清楚,你的意思是一个父类A,之后两个子类B和C,B和C共享父类的一个成员吗 ?在不知道你意思的情况下我有这个建议,两种方法完成共享:1.利用组合而非继承,B类和C类存同一个A的指针,完成共享2.3楼正解了,单件模式,A类可以类似的这样写,B和C只需要在使用时调用A::Instance()就可以了class A  {public:   static A *Instance(){       if (NULL == m_pA) {           m_pA = new A;       }       return m_pA;   }private:   A(){m_pA = NULL;}   ~A();private:   static A *m_pA;}
原创粉丝点击