我正在尝试编写一个基于接口的文件加载器,它将以多种方式实现,用于不同的文件类型。我尝试了我想到的每一个组合,或者在堆栈/互联网上找到但我一直收到错误。我做错了什么?
芯/ loader.h:
#ifndef CORE_LOADER_H
#define CORE_LOADER_H
class LoaderInterface
{
public:
virtual bool reloadFile();
};
#endif // CORE_LOADER_H
芯/ 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;
}
Linker说:
(..)/qt/build-Foo-Desktop_Qt_5_7_0_GCC_64bit-Debug/own.o:-1: error: undefined reference to `typeinfo for LoaderInterface'
答案 0 :(得分:1)
你应该在接口类中使用纯虚函数:
class LoaderInterface
{
public:
virtual bool reloadFile() = 0;
};