Overriding a member variable in C++

前端 未结 3 1327
醉梦人生
醉梦人生 2021-01-05 00:57

I have run into a bit of a tricky problem in some C++ code, which is most easily described using code. I have classes that are something like:

class MyVarBas         


        
3条回答
  •  梦谈多话
    2021-01-05 01:13

    I think your mention of templates may be a good option, so something like:

    class MyVarBase
    {
    };
    
    class MyVar : public MyVarBase
    {
      int Foo();
    };
    
    template  class MyBase
    {
    public: 
      MyBase(T* v) : m_var(v) {}
      T* GetVar() { return m_var; }
    
    private:
      T* m_var;
    };
    
    class MyClass : public MyBase
    {
    public:
      MyClass(MyVar* v) : MyBase(v) {}
    };
    

    However this would depend on what classes you can actually change. Also, the 'MyClass' definition could be redundant, unless it has other members over and above the MyBase class.

提交回复
热议问题