调用构造函数中的虚拟函数
假设我有两个C+类:
class A{public: A() { fn(); } virtual void fn() { _n = 1; } int getn() { return _n; }protected: int _n;};class B : public A{public: B() : A() {} virtual void fn() { _n = 2; }};
如果我编写以下代码:
int main(){ B b; int n = b.getn();}
人们可能会想到n设置为2。
n
结果证明n设置为1。为什么?
慕婉清6462132
相关分类