我有一些像这样的代码(这只是一个片段,不是完全有效的代码):
class AbstractClass {
public:
AbstractClass() {}
virtual ~AbstractClass() {}
virtual void doA() { std::cout << "doA1\n"; };
virtual void doB() = 0;
};
class ImplClass : public AbstractClass {
public:
ImplClass() {}
virtual ~ImplClass() {}
virtual void doA() override { std::cout << "doA2\n"; };
virtual void doB() override { std::cout << "doB2\n"; };
};
Run Code Online (Sandbox Code Playgroud)
现在我想在std :: function中存储对AbstractClass的成员方法的调用,如下所示:
int main() {
AbstractClass* aClass = new ImplClass();
std::function<void()> func = std::bind(&AbstractClass::doA, *aClass)
delete aClass;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然而,根据编译器,由于AbstractClass中存在纯虚方法,这不起作用.
编辑:供参考完整错误
In …Run Code Online (Sandbox Code Playgroud)