【发布时间】:2016-05-04 05:53:50
【问题描述】:
我正在处理一个代码,我看到了一些奇怪的东西,一个“MyClass”类的方法让我们称之为 X():
virtual void X() = 0;
所以 MyClass 是一个抽象类,在 MyClass.cpp X() 中有一个正确的实现...... 在 MyClass 的派生类中,这个方法是通过 MyClass::X(); 调用的;
我认为= 0 会使它的实现无效......但事实并非如此,事实上它可以在派生类中使用。
你能告诉编译器在遇到= 0时到底做了什么吗?
【问题讨论】:
-
你不能实例化 MyClass 因为你告诉 X 没有定义,它必须在子类中实现(在很多语言中它被称为抽象类)。
标签: c++ oop virtual derived-class