错误C2504 - 基类未定义

idj*_*adj 5 c++ visual-studio-2010 visual-studio

我有一个相当简单的问题

这是我的 firstcluster.h

#pragma once

#include "cluster.h"

class FirstCluster:public Cluster{
    ...

public:
    ...
};
Run Code Online (Sandbox Code Playgroud)

cluster.h的代码:

#pragma once

// File: cluster.h

class Cluster {
protected:
    ...

public:
    ...
};
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

error C2504: 'Cluster' : base class undefined
Run Code Online (Sandbox Code Playgroud)

有时我会收到此IntelliSense错误:

IntelliSense: incomplete type is not allowed ... Line 10 Column 27 
Run Code Online (Sandbox Code Playgroud)

但它并不总是出现.

将cluster.h被包括在内,你可以看到,和所有其他的头文件与保护#pragma once

我真的不知道这里会出什么问题?

即使我用一切保护,圆形包括制造问题#pragma once吗?我正在使用Visual Studio 2010.

use*_*110 6

由于循环包含,我得到了这个.

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

我设法通过在include.h中包含标准头文件来避免循环包含.