为什么这个函数不覆盖基类函数?

所以这里是基类。

class MovieRepo {
protected:
    MyLista<Movie> all;
public:
    MovieRepo();
    void store(const Movie& m);
}

而这个是重载:

class RepoFile : public MovieRepo
{
private:
    string filename;
    void loadFromFile();
    void storeToFile();

public:

    RepoFile(string _filename) : filename{ _filename } { this->loadFromFile(); };

    void store(const Movie& m) override { // here is the error
        MovieRepo::store(m);
        storeToFile();
    }
}

上面写着: ‘RepoFile::store’: 方法中的覆盖指标’override’没有覆盖任何基类方法.

解决方案:

MovieRepo::store() 不是一个虚拟函数。这个 override 指定符只适用于虚拟函数。将基类方法改为虚拟方法就可以解决这个问题。

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/29321.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表评论

登录后才能评论