我的教授要求我创建对象,但两个类都是抽象的



我有这个面向对象的实验室作业,我被要求创建2个继承自父类的类,这两个类都有纯虚函数"virtual void merge(Book *ptr) = 0;"

然后在稍后的作业中,我被要求在驱动类中创建对象,但是我应该用来创建对象的两个类都是抽象的!

我能做些什么来创建对象吗?或者这只是教授的一个错误?

我得到的错误

我问了教授,他说不,这里没有什么问题,所以我有点迷路了。

可能您的导师希望您重写所有纯虚函数以使这些类具体化。之后,您可以实例化它们而不会出现任何问题:

#include <string>
struct Book {
virtual std::string genre() const = 0;
virtual ~Book() = default;
};
struct FictionBook : Book {
std::string genre() const override { return "Fiction"; }
};
struct NonFictionBook : Book {
std::string genre() const override { return "NonFiction"; }
};
int main() {
FictionBook fiction;
NonFictionBook nonFiction;
}

最新更新