这两个输出为什么不一样呢(关于类继承和虚函数的有关问题)
这两个输出为什么不一样呢(关于类继承和虚函数的问题)
输出结果是
1
0
有人能比较具体得解释一下内在的调用机制么?谢谢
------解决方案--------------------
- C/C++ code
#include<iostream> using namespace std; class A { protected: int m_data; public: A(int data=0) { m_data=data; } int GetData() { return doGetData(); } virtual int doGetData() { return m_data; } }; class B:public A { protected: int m_data; public: B(int data=1) { m_data=data; } int doGetData() { return m_data; } }; class C:public B { protected: int m_data; public: C(int data=2) { m_data=data; } }; int main() { C c(10); cout<<c.A::GetData()<<endl; cout<<c.A::doGetData()<<endl; return 0; }
输出结果是
1
0
有人能比较具体得解释一下内在的调用机制么?谢谢
------解决方案--------------------