64,849
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
自递归调用B::Show()了,但是注意B::Show()是无参的,所以报错。参见《C++程序设计实践教程(新国标微课版)》,为避免自递归,可采用A::Show( )调用,或者((A*)this)->Show()调用,或者((A&)*this).Show()调用,这些调用编译成机器指令的结果都是一样的。
可以在B类中重新导出show,只要在B的声明中加上一句:
using A::show;
即可~
类需要通过作用域运算符::调用父类的Show函数。
void Show() override{
cout << "B" << endl;
A::Show("1");
}