我对以下代码有一个奇怪的情况。请帮助我弄清楚它。
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 ]
请帮忙。对于您来说,这似乎很明显,但我不了解其内部机制。
Qyouu
UYOU
慕姐8265434
相关分类