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
Да, ваши концепции неверны. Даже если вы измените B на b, чтобы скомпилировать его, оно вернется. 10. –
Вы пробовали? Я действительно не думаю, что он вернется 0 –