我正在尝试编写一个基于接口的文件加载器,对于不同的文件类型,可以通过多种方式实现。我尝试过我想到的所有组合或在堆栈/互联网上找到的所有组合,但我不断收到错误消息。我究竟做错了什么?

核心/loader.h:

#ifndef CORE_LOADER_H
#define CORE_LOADER_H

class LoaderInterface
{
    public:
        virtual bool reloadFile();
};

#endif // CORE_LOADER_H


core / lodaer / own.h:

#ifndef CORE_LOADER_OWN_H
#define CORE_LOADER_OWN_H

#include "src/core/loader.h"

class Own : public LoaderInterface
{
    public:
        bool reloadFile();
};

#endif // CORE_LOADER_OWN_H


核心/加载程序/own.cpp:

#include "src/core/loader/own.h"

bool Own::reloadFile(){
    return true;
}


链接器说:

(..)/qt/build-Foo-Desktop_Qt_5_7_0_GCC_64bit-Debug/own.o:-1: error: undefined reference to `typeinfo for LoaderInterface'

最佳答案

您应该在接口类中使用纯虚函数:

class LoaderInterface
{
    public:
        virtual bool reloadFile() = 0;
};

10-07 15:42