我有一个非常简单的代码:
#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)||未定义对`typeinfo for A'的引用| ||=== 构建完成:3 个错误,0 个警告 ===|
这是为什么?