我正在尝试创建一个抽象类A
,它将由类B
继承;
类A
有一个单一的纯虚函数,由B
类正确定义,但是下面的代码无法编译,给我一个Symbol could not be resolved
错误:>
class A {
public:
A() {foo();}
virtual void foo() = 0;
};
class B : public A {
public:
B() : A() {}
void foo() override {}
};
int main() {
B b = B();
return 0;
}
有人可以解释我为什么吗?我以为动态绑定将允许我在基类构造函数中调用纯虚函数,只要它是由B
类定义的即可(主要是我在默认情况下初始化B
对象,因此foo()
的定义正确);
我想念什么?谢谢。