关于C:抽象和虚拟的区别是什么?


What is a difference between abstract and virtual?

本问题已经有最佳答案,请猛点这里访问。

抽象类和虚拟类都将在子类中被重写,而不是有什么区别。

虚方法有主体,抽象只是签名吗?????


is it Virtual method have body and abstract is just a signature ????

确切地。关键是虚拟方法可以在派生类中被重写,而抽象方法必须被重写。同样,具有至少一个抽象方法的类本身必须是抽象的,即它不能直接实例化,因为它的实现(部分)丢失。

最后,每一种抽象方法都是隐含的虚拟方法。virtual基本上只是意味着方法在运行时被调度到正确的类,因此它可以被重写以实现运行时多态性。


抽象意味着您必须重写它。虚拟意味着您可以覆盖它。或多或少。


我同意这两个答案,所以我不会重复。但这里有一个链接可能会有所帮助。

10.6.3虚拟、密封、重写和抽象访问器