代码之家  ›  专栏  ›  技术社区  ›  Max Frai

应用程序结构

  •  0
  • Max Frai  · 技术社区  · 15 年前
    class Base
    {
        private: bool mEnabled;
        public: bool getEnabled() { return mEnabled; }
    };
    
    class First : public Base;
    {
      // ...
    };
    
    class Second : public Base
    {
       Second() {
          // I have to check First::mEnabled
       }
    };
    
    class Manager
    {
        First obj1;
        Second obj2;
    };
    

    我有一个班级经理负责另外两个班级。我必须从另一个对象中检查这样一个对象中的mEnabled变量。什么是正确的方法?如果我能

    static bool mEnabled;
    static bool getEnabled();
    

    3 回复  |  直到 15 年前
        1
  •  0
  •   MOnsDaR    15 年前

    而不是静态的你可能会检查 getEnabled 在你的班级经理中:

    if( obj1.getEnabled() )
    {
        Second obj2;
    }
    

    问题是,您想要访问另一个类,而它们之间没有任何关系。所以需要一个更高级的类来创建这个关系。

        2
  •  0
  •   sbi    15 年前

    void f(First& first)
    {
      if(first.getEnabled()) 
        ...
    }
    

    如果通过指针,请使用 -> . :

    void f(First* first)
    {
      if(first->getEnabled()) 
        ...
    }
    
        3
  •  0
  •   Alexander Rafferty    15 年前

    我绝对建议让全班同学知道上面的答复中提到的另一个问题。如果需要这样做,可以使用指向类的全局指针,并在类被实例化后对其进行赋值。

    推荐文章