class A {
public:
virtual int test()=0;
};
class B : public A {
public:
int test(){return 10;}
};
B *b = new B();
b->test(); // would return 10;
class A {
public:
int test(){return 0;}
};
class B : public A {
public:
int test(){return 10;}
};
B *b = new B();
b->test(); // **would return 0**;
爲什麼它返回 「」 在這裏?這對我來說毫無意義,因爲我認爲派生類(B)的(類型重載)成員是第一個! 這裏發生了什麼?
'B-> test()'不能編譯。是什麼讓你認爲第二個例子的結果爲零? – aschepler 2013-02-12 19:24:31
是的,你的想法是不正確的。即使您將B更改爲B來編譯它,它也會返回10. – 2013-02-12 19:25:54
您嘗試過嗎?我真的不認爲它會返回0 – 2013-02-12 19:27:19