C ++

时间:2018-11-19 11:17:25

标签: c++

我正在尝试创建一个抽象类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()的定义正确);

我想念什么?谢谢。

0 个答案:

没有答案