我有一个相当简单的问题
这是我的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'等的缺少名称空间定义不是另一类的本地。
希望这会有所帮助。
此错误是由于圆形而发生的,因此我们可以通过在父级底部添加子类的标题来处理此错误