vc 父类实现一个虚函数,子类继承并也实现这个虚函数,子类调用这个虚函数,父类这个虚函数会不会执行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc 父类实现一个虚函数,子类继承并也实现这个虚函数,子类调用这个虚函数,父类这个虚函数会不会执行?相关的知识,希望对你有一定的参考价值。

不会执行,只会执行子类实现的函数,如果想执行父类的相应函数,可以在子类函数里用作用域限定符显示调用,例如 SubClass::fun() ParentClass:fun();...... 参考技术A 不会执行,查虚函数表的时候,发现子类有这个虚函数,就覆盖了。

建议看一下《深入探索C++对象模型》,对C++虚函数机制有完整的讲解本回答被提问者采纳

如果父类有一个虚方法,子类重写了这个方法。那么子类到底有没有继承父类的虚方法??

如果父类有一个虚方法,子类重写了这个方法。那么子类到底有没有继承父类的这个虚方法??

是abstract方法吧?那叫抽象方法。“虚函数”是C++的概念。
如果子类@Override了父类的abstract方法,从概念上是“实现”(implements)了该方法。

如果子类@Override了父类的"非abstract"方法,从概念上是“覆盖”(override)了该方法。

两者在java 1.5之前,前者是不能用标记“@Override”标注的。

但从多态性(Polymorphism)而言,是一样的效果。按你的说法,都是子类继承了父类的方法。

希望能帮到你!追问

晕,我怀疑你你没学过C#没有

追答

你想说什么?

追问

额。。。算了,是我没有把问题说清楚,这不是JAVA和C++的内容,是C#里面的语法。

追答

你看看你自己放的相关分类!

参考技术A 我先问一句,你问的是C#还是java追问

C#

参考技术B 继承了。
非抽象的方法可以通过super.method(args)调用。

以上是关于vc 父类实现一个虚函数,子类继承并也实现这个虚函数,子类调用这个虚函数,父类这个虚函数会不会执行?的主要内容,如果未能解决你的问题,请参考以下文章

如果父类有一个虚方法,子类重写了这个方法。那么子类到底有没有继承父类的虚方法??

C++中,子类会继承父类的虚函数表!对于父类的析构函数(虚函数) 也会继承吗?

继承与多态C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态

C++ 父类指针如何调用子类的变量和函数 虚函数virtual实例

C++ 父类指针如何调用子类的变量和函数 虚函数virtual实例

C++面试必备