error C2504: 未定义基类

出错的情况为:

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

namespace pcl
{
    struct CSDDSignature;
}

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

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

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

解决方法:

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

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

时间: 2025-01-31 06:12:05

error C2504: 未定义基类的相关文章

error C2504: “CActiveXDocControl”: 未定义基类

出现这种错误,一般是头文件出现问题: 1.头文件互包含 2.头文件顺序 此错误是编译错误,和"inclued头文件"有关 问题描述 有三个头文件AgentSDK.h.AA.h.BB.h,其中CBB类继承自CAA. 头文件包含顺序如下, 1.AA.h包含AgentSDK.h 2.AgentSDK.h包含BB.h 3.BB.h包含AA.h 原因分析:编译器首先编译AA.h,因其包含AgentSDK.h,引入AgentSDK.h继续编译.因为AgentSDK.h包含BB.h,载入BB.h内容

__autoload()尝试加载未定义的类

在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可.PHP5 以后提供了这样一个方法可以自动完成加载所需的类文件. 参见官网的例子: ./myClass.php <?php class myClass { public function __construct() { echo "myClass init'ed successfuly!!!"; } } ?> ./index.php <?php // we've write

Duanxx的C++学习: 使用了未定义的类 原因及解决方案

今天在用C++写神经网络算法时,发现了一个非常让人费解的问题,大致描述如下: 我有两个类ClassA和ClassB,它们分别有成员变量a,b; ClassA有一个函数是这样的:FunctionA(const ClassB &classB) ClassB中也有一个类似的函数:FunctionB(const ClassA&classA) 一开始代码类似于这样的,但是报错了,原因很简单,ClassB在FunctionA使用ClassB的时候,ClassB只有声明,没有定义. class Clas

error:未定义的引用

用qtcreator编程的话,先在.pro文件中这样写: p,li { white-space: pre-wrap } INCLUDEPATH += \ /usr/local/include/ LIBS += \ -L"/usr/local/lib" -lSophus 添加库及包含目录,然后再使用! 然后再在.h中写上#include,就可以正常使用了.

C++中未定义类的引用。

在有时候因为类太大,需要在类在后面定义: 例如: class Y{ void f(X); }; class X{ //一些成员数据和函数 }; //error 因为c++要求任何一个变量在引用之前必须声明.,在上述定义中我们可以调换两者的顺序来实现. 但是如果形成了循环? class X{ void f1(Y) }; class Y{ void f(X); }; //error 这种就不能通过简单的调换顺序来通过编译器在调用之前必须声明的金科玉律了. 那么我们可以通过在上述中先声明? class

gcc/g++ 编译时出现:“对’xxxx’未定义的引用,collect2: error: ld returned 1 exit status” 的错误

出现的问题: 在使用 make 编译实现一个程序时,出现了下面的错误.查看程序源文件所在的目录时发现程序已经完成了编译,并生成了 list_repo.o 的文件,说明是在程序链接生成可执行文件时发生了问题. storages/local.o:在函数‘LocalStorage::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >,

Oracle EBS-SQL (BOM-13):检查未定义库存分的物料类.sql

select distinct msi.segment1            编码 , msi.description                      描述  , msi.primary_unit_of_measure 单位 , msi.inventory_item_status_code 状态 , flv.MEANING                    物料类型 , catb1.segment1               库存大类 , catb1.segment2     

error:: undefined reference to symbol &#39;__glewBufferSubData&#39; 未定义的引用 以及 error: main.o: undefined reference to symbol &#39;glTexImage2D&#39;

在把DSO移植到QT工程中,出现了 p,li { white-space: pre-wrap } /usr/bin/ld: KeyFrameDisplay.o: undefined reference to symbol '__glewBufferSubData' 报错,原因是.pro文件中没有加 GLEW库. 解决方案: 在.pro文件中加上这句: p,li { white-space: pre-wrap } ##### GLEW ##### LIBS += -lGLEW error: mai

Effective C++学习笔记 条款07:为多态基类声明virtual析构函数

一.C++明确指出:当derived class对象经由一个base class指针被删除,而该base class带着一个non-virtual析构函数,其结果未定义——实际执行时通常发生的是对象的derived成分没有被销毁!(注:使用基类引用派生类的方式使用多态,由于引用只是对原对象的一个引用或者叫做别名,其并没有分配内存,对其引用对象内存的销毁,将由原对象自己负责,所以使用引用的时候,如果析构函数不为virtual,那么也不会发生derived成员没有销毁的情况) 例如: class b