我有几个子类,我不想重写某些初始化代码..我尝试过类似的东西..
#include <iostream>
struct A {
A() { init(); }
virtual ~A() {}
void init() { load(); }
virtual void load() = 0;
};
struct B : public A {
void load() { std::cout << "loading.." << std::endl; }
};
int main(int argc, char* argv[])
{
A* a = new B; delete a;
return 0;
}
这给出了运行时错误/异常 - “称为纯虚方法”。我已经读过其他线程,解释说这是不可能的;但除了被迫在子类中反复重写相同的代码之外,我没有看到任何解决方案。是否有更好的方法来封装它? (除了在子构造函数中执行此操作..)