1.undefined reference to 'vtable for xxx'
vtable是c++中虚函数表的意思,出现该编译错误是在类定义中定义了纯虚函数而没有实现;
解决办法:为每个虚函数提供至少一个实现;
2.undefined reference to 'xxx::xxx' (当xxx是static成员变量)
在C++中,当你声明一个类的静态成员变量时,它只是一个声明,而不是定义。因此,你需要在类外部提供一个定义;
//class.h
class A
{
public:
static int b;
void set_b();
};
//class.cpp
int A::b = 0; //在此处添加b的定义
void A::set_b()
{
b = 100;
}