私は非常に単純なコードを持っています:
#include <iostream>
#include <string>
class A
{
public :
A(){}
virtual void fun(std::string);
virtual ~A(){}
};
class B : public A
{
public :
B(){}
void fun(std::string);
~B(){};
};
void B::fun(std::string)
{
}
int main()
{
A a;
return 0;
}
そして、私はそれをコンパイルしようとしてこのメッセージを受け取りました:
/home/Temp/test.o ||
A::A()':| test.cpp:(.text._ZN1AC2Ev[_ZN1AC5Ev]+0x8)||undefined reference to
A'の関数vtable内| /home/Temp/test.o ||A::~A()':| test.cpp:(.text._ZN1AD2Ev[_ZN1AD5Ev]+0xb)||undefined reference to
A'の関数vtable内| /home/Temp/test.o:(.rodata._ZTI1B [typeinfo for B] + 0x8)|| `typeinfoforA'への未定義の参照| || ===ビルドが完了しました:3つのエラー、0の警告=== |
何故ですか?