错误C2504-基类未定义

Error C2504 - Base class undefined

本文关键字:未定义 基类 C2504- 错误      更新时间:2023-10-16

我有一个相当简单的问题

这是我的firstcluster.h

#pragma once
#include "cluster.h"
class FirstCluster:public Cluster{
    ...
public:
    ...
};

cluster.h的代码:

#pragma once
// File: cluster.h
class Cluster {
protected:
    ...
public:
    ...
};

我遇到了错误:

error C2504: 'Cluster' : base class undefined

有时我会遇到此Intellisense错误:

IntelliSense: incomplete type is not allowed ... Line 10 Column 27 

但并不总是会出现。

如您所见,包括cluster.h,所有其他标头文件均受#pragma once 保护

我真的不知道这里怎么了?

即使我用#pragma once保护所有内容,也可以包括循环问题吗?我正在使用Visual Studio2010。

我由于圆形而得到了。

我将所有标题包括在" include.h"中,并将其包括在其他任何地方。

我设法避免了圆形包含在包括标准标头的包括。

我遇到了完全相同的问题,添加

#ifndef CLUSTER_H
#define CLUSTER_H
/* your code */
#endif

帮助解决了问题。IFNDEF部分显然是为了包括重复,但我认为"定义"确实有帮助。

此代码看起来正常,所以:如果cluster.h实际定义了群集类,请检查围绕群集(如果使用命名空间),"群集" vs'vs'cluster','cluster'等的缺少名称空间定义不是另一类的本地。

希望这会有所帮助。

此错误是由于圆形而发生的,因此我们可以通过在父级底部添加子类的标题来处理此错误