在STL的c ++中包含Header文件

时间:2015-11-19 19:31:27

标签: c++ stl

我有一个像这样的课程

/*class.h*/

class MClass
{
 public:
   MClass(std::vector<int> number);

}

并且

/* class.cpp */
#include <vector>
#inclue "class.h"
MClass::MClass(std::vector<int> number)
{
  // Do Something
}

如果我不在头文件中添加#include <vector>,则不会编译它 这种行为是正常还是我错过了什么?

2 个答案:

答案 0 :(得分:0)

您应在标题中加入<vector>。然后你应该在你的cpp文件中包含你的班级标题。

您无法在没有类标题的情况下编译cpp文件。所以包含你的课程标题是正常的 - 没有办法解决它。此外,仅包含标头中所需的内容是正常的,因此它不会在使用标头的代码中引入不必要的依赖关系。在这种情况下,根据您的会员功能签名,您需要在标题中加入<vector>

答案 1 :(得分:0)

class.cpp应该#include&#34; class.h&#34;

class.h应该#include&lt; vector&gt;