我是否需要包含其他包含的标头使用的标头?

时间:2016-09-05 00:37:25

标签: c++ header include

说我有一个文件main.cpp,其中包含另一个文件header.h,其中包含algorithm。我是否还需要在algorithm中加入main.cpp?或者我可以留下它吗?

2 个答案:

答案 0 :(得分:1)

如果#include <algorithm>使用任何函数或类,或main.cpp中定义的任何其他内容,则需要将main.cpp添加到<algorithm>

其他翻译单位使用的内容无关紧要。

答案 1 :(得分:1)

不,你不需要。可以将“#include”视为将包含文件的全部内容复制并粘贴到该行的方向。

other.h:

#include <string>
#include <vector>

std::string getString()
{
    return "A String";
}

main.cpp中:

#include <iostream>
#include "other.h"


int main()
{
    std::vector<std::string> vec{getString(), getString()};

    for (auto &it : vec) {
        std::cout << it << std::endl;
    }
    return 0;
}