不,实际上因为基类没有必要有一个显式定义的构造函数(尽管确保你有一个虚拟析构函数).
因此,对于典型的界面,您可以使用以下内容:
class MyInterface { public: virtual ~MyInterface() {} virtual void execute() = 0; };
编辑:这是你应该有一个虚拟析构函数的原因:
MyInterface* iface = GetMeSomeThingThatSupportsInterface(); delete iface; // this is undefined behaviour if MyInterface doesn't have a virtual destructor