C++ c+中的多级继承+;

C++ c+中的多级继承+;,c++,inheritance,multi-level,C++,Inheritance,Multi Level,假设有一个3级继承 类A如果没有“技巧”,父类无法从子类访问数据,例如 B可以访问m_a,a不能访问m_B。要获得这种行为,可以使用多态性和访问器函数 class A { protected: virtual int GetVar() { return m_a; } private: int m_a; } class B : public A { protected: virtual int GetVar() { return m_b; } private: int m_b;

假设有一个3级继承


类A如果没有“技巧”,父类无法从子类访问数据,例如

B可以访问m_a,a不能访问m_B。要获得这种行为,可以使用多态性和访问器函数

class A
{
protected:
  virtual int GetVar() { return m_a; }
private:
  int m_a;
}

class B : public A
{
protected:
  virtual int GetVar() { return m_b; }
private:
  int m_b;
}
现在A可以通过调用
GetVar()
访问m_b,例如

void A::DoSomething()
{
  // I want to do something to the variable, 
  int myVar = GetVar();
}

现在,如果实例类型为
A
,则调用
A::GetVar()
,如果实例类型为
B
,则将调用
B::GetVar()

您能否更具体地说明您试图实现的目标?尝试时发生了什么?我不确定为什么会投反对票。答案显然是否定的,但是。。。在这方面,答案是恰当的。书籍:
void A::DoSomething()
{
  // I want to do something to the variable, 
  int myVar = GetVar();
}