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**;
ここで「 0 」を返すのはなぜですか? 派生クラス (B) の (一種のオーバーロードされた) メンバーが最初に来ると想定しているため、これは私にはまったく意味がありません! ここで何が起きてるの?