我有一个像这样的课程
/*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>
,则不会编译它
这种行为是正常还是我错过了什么?
答案 0 :(得分:0)
您应在标题中加入<vector>
。然后你应该在你的cpp文件中包含你的班级标题。
您无法在没有类标题的情况下编译cpp文件。所以包含你的课程标题是正常的 - 没有办法解决它。此外,仅包含标头中所需的内容是正常的,因此它不会在使用标头的代码中引入不必要的依赖关系。在这种情况下,根据您的会员功能签名,您需要在标题中加入<vector>
。
答案 1 :(得分:0)
class.cpp应该#include&#34; class.h&#34;
class.h应该#include&lt; vector&gt;