У меня странная ситуация по следующему коду. Пожалуйста, помогите мне разобраться.
class B
{
public:
B();
virtual void print(int data=10)
{
cout << endl << "B--data=" << data;
}
};
class D:public B
{
public:
D();
void print(int data=20)
{
cout << endl << "D--data=" << data;
}
};
int main()
{
B *bp = new D();
bp->print();
return 0;
}
Что касается ожидаемого результата
[ D--data=20 ]
Но на практике это
[ D--data=10 ]
Пожалуйста, помогите. Это может показаться вам очевидным, но я не знаю внутреннего механизма.