出错的情况为:
type.h 文件中定义了一个结构体,但只给出了声明
namespace pcl { struct CSDDSignature; }
其定义在type.hpp文件中给出
namespace pcl { struct CSDDSignature { float histogram[111]; }; }
在do.h文件中使用该结构体时,只包含了type.h文件,此时报错:未定义基类
解决方法:
在do.h文件中使用文件外定义的结构体时,需要看到定义,不能只是声明。
此类错误在派生类的头文件也经常因为类似原因而经常出现。