調用構造函數中的虛擬函數假設我有兩個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設置為1。為什么?
3 回答
慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
- 3 回答
- 0 關注
- 535 瀏覽
添加回答
舉報
0/150
提交
取消
