error C2504: 未定义基类

出错的情况为:

type.h 文件中定义了一个结构体,但只给出了声明

namespace pcl
{
    struct CSDDSignature;
}

其定义在type.hpp文件中给出

namespace pcl
{
    struct CSDDSignature
    {
        float histogram[111];
    };
}

在do.h文件中使用该结构体时,只包含了type.h文件,此时报错:未定义基类

解决方法:

在do.h文件中使用文件外定义的结构体时,需要看到定义,不能只是声明。

此类错误在派生类的头文件也经常因为类似原因而经常出现。

原文地址:https://www.cnblogs.com/freshmen/p/6685438.html