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) 的(某种重载)成员排在第一位!这里发生了什么?