C ++包含的类不被另一个类识别

时间:2013-08-27 15:37:00

标签: c++ class include

我正在尝试使用C ++进行Bootstrapping。我有一个Bootstrapping类进行抽样计算,Sample类存储结果:

Sample.h档案

class Sample
{
      // do something
};

Bootstrapping班级

#include <vector>
using namespace std;

class Bootstrapping
{
 private:
    vector<Sample> sample_list;    // Here the problem happens

   // do something
};

main.cpp档案

#include <iostream>
#include "Bootstrapping.h"
#include "Sample.h"
using namespace std;

int main()
{
    // do something
}

当我调试上面的代码时,编译器会在Bootstrapping类中弹出一个错误,即identifier "Sample" is undefined。但我显然已将其纳入main

任何人都可以帮我解决这个问题吗?非常感谢提前。

3 个答案:

答案 0 :(得分:2)

您应该重新订购标题。

#include "Sample.h"
#include "Bootstrapping.h"

答案 1 :(得分:2)

您需要#include "Sample.h"文件中的Bootstrapping.h

答案 2 :(得分:0)

在Bootstrapping.h之后包含Sample.h。编译器从头到尾处理代码,因此在处理Bootstrapping类的声明时它对Sample类一无所知。 当然,您应该在Bootstrapping.h中包含Sample.h,以使此标头与标题顺序无关。