私は以下のコードを持っています:
// 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 への Undefined 参照を取得しました! これは何かが恋しいですか?