C++;其他类无法识别包含的类 我尝试用C++进行引导。我有一个执行抽样计算的Bootstrapping类,一个存储结果的Sample类:

C++;其他类无法识别包含的类 我尝试用C++进行引导。我有一个执行抽样计算的Bootstrapping类,一个存储结果的Sample类:,c++,class,include,C++,Class,Include,在Sample.h文件中 class Sample { // do something }; #include <iostream> #include "Bootstrapping.h" #include "Sample.h" using namespace std; int main() { // do something } 在引导中类 #include <vector> using namespace std; class Bootstr

Sample.h
文件中

class Sample
{
      // do something
};
#include <iostream>
#include "Bootstrapping.h"
#include "Sample.h"
using namespace std;

int main()
{
    // do something
}
引导中

#include <vector>
using namespace std;

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

   // do something
};
当我调试上述代码时,编译器在
引导
类中弹出一个错误,表示
标识符“Sample”未定义
。但我显然已经把它包括在
main
中了


有人能帮我摆脱这一切吗?非常感谢。您应该重新订购标题

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

您应该重新排列标题

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

您需要在
Bootstrapping.h
文件中包含“Sample.h”。

您需要在
Bootstrapping.h
文件中包含“Sample.h”。

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

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

您是否在Bootstrapping类声明标头中包含Sample.h?您是否在Bootstrapping类声明标头中包含Sample.h?这是可行的,但取决于标头以特定顺序包含是不好的做法。由于“Bootstrapping”的定义取决于“Sample”的定义,Bootstrapping.h应该包括Sample.h。(转发声明在这里不起作用。)这是可行的,但依赖于以特定顺序包含的头是不好的做法。由于“Bootstrapping”的定义取决于“Sample”的定义,Bootstrapping.h应该包括Sample.h。(转发声明在这里不起作用。)