C++ c+中的多级继承+;
假设有一个3级继承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;
类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();
}