class Base
{
virtual void bePolymorphic() = 0; // Will never be used
};
class Derived : Base
{
virtual void bePolymorphic() override {}; // I have to do this in every derived class
};
Run Code Online (Sandbox Code Playgroud)
Base如果没有任何成员函数,这是我最近用来制作抽象类的hack .
在Java中有一个abstract关键字.为什么C++中没有?还有另一种方法可以使类抽象化吗?
这个问题*的经典解决方法是使析构函数纯粹虚拟.当然,你必须在课外实现它:
// In the header file
class Base {
virtual ~Base() = 0;
};
// In the source file
Base::~Base() {
}
Run Code Online (Sandbox Code Playgroud)
*这个建议来自Scott Meyers的一本书.