class AbstractClass { public: virtual void doSomething() = 0; // 纯虚函数 }; class ConcreteClass : public AbstractClass { virtual void doSomething()}; int main() { // AbstractClass abstract; ConcreteClass concrete; return 0; }那么子类也是抽象类吗
时间: 2024-04-23 19:24:52 浏览: 63
如果子类没有实现父类中的纯虚函数,那么该子类仍然是一个抽象类。在你提供的代码中,由于 `ConcreteClass` 实现了 `doSomething()` 函数,因此它不再是一个抽象类。但是,由于 `AbstractClass` 中的 `doSomething()` 函数是一个纯虚函数,所以 `AbstractClass` 仍然是一个抽象类,不能被实例化。因此,在 `main()` 函数中尝试实例化 `AbstractClass` 会导致编译器错误。
阅读全文