C++ 中真实方法和虚拟方法之间的区别

the difference between a real and virtual method in c++

本文关键字:方法 之间 区别 虚拟 真实 C++      更新时间:2023-10-16

我在维基百科上读过这个蔑视,但我想用简单的英语理解这些是我在维基百科上读到的蔑视

virtual functionvirtual methodfunctionmethod,其行为可以在继承类中被具有相同签名的函数覆盖"

"pure virtual functionpure virtual method是需要由非抽象派生类实现的virtual function"

我的另一个问题是,如果我有class Aclass B,如何在class A或仅在class B中执行virtual method......我读过很多书,我知道有人说这可能是这里某些问题的重复,但我真的很想用简单的英语理解,因为这样我就可以轻松快速地了解事物。

类的非虚拟方法不能被继承自基类的子类覆盖。(请注意,这与在子类中"重新定义"方法不同)

基类的虚拟方法可以被子类覆盖。(见@juanchopanza关于private可见性的评论)

基类中的纯虚拟方法意味着它是一个"抽象"(仅将其视为接口) - 因为它不应该按原样直接使用,而是基类期望子类覆盖该方法以提供实际实现。