我正在尝试编写一个基于接口(interface)的文件加载器,它将以多种方式针对不同的文件类型实现。我尝试了我想到的或在堆栈/互联网上找到的每一种组合,但我不断收到错误。我做错了什么?
核心/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;
}
链接器说:
(..)/qt/build-Foo-Desktop_Qt_5_7_0_GCC_64bit-Debug/own.o:-1: error: undefined reference to `typeinfo for LoaderInterface'
最佳答案
你应该在接口(interface)类中使用纯虚函数:
class LoaderInterface
{
public:
virtual bool reloadFile() = 0;
};
关于c++ - 错误 : undefined reference to typeinfo while implementing interface pattern in C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41555775/