【发布时间】:2021-08-27 18:45:20
【问题描述】:
我对以下代码有一个奇怪的情况。请帮我澄清一下。
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 ]
请帮忙。这对你来说似乎很明显,但我不知道内部机制。
【问题讨论】:
-
如果某个答案解决了您的问题(或让您理解了它),请使用答案左侧的绿色勾号接受它。
标签: c++