我有以下代码:
// IBase.h
#include <iostream>
class IBase{
public:
virtual string getId();
};
// IBase.cpp
#include "IBase.h"
string IBase::getId(){};
// Base.h
#include <iostream>
#include <string>
#include "IBase.h"
using namespace std;
class Base : public IBase{
protected:
string id;
public:
Base(string _id);
string getId();
};
// Base.cpp
#include "Base.h"
Base::Base(string _id){
id = _id;
}
string Base::getId(){
return id;
}
// Base2.h
#include <iostream>
#include <string>
#include "Base.h"
using namespace std;
class Base2 : public Base{
public:
Base2(string _id);
string getId();
};
// Base2.cpp
#include "Base2.h"
Base2::Base2(string _id) : Base(_id){};
当我编译项目时,我得到了未定义的对 Base2 中的 vtable 的引用!这是我想念什么吗?