【发布时间】:2021-09-18 04:52:26
【问题描述】:
在以下场景中,包含<string> 标头的最佳方法是什么?
main.cpp
#include "extra.h"
int main() {
func("A string");
return 0;
}
额外的.h
#ifndef EXTRA_H
#define EXTRA_H
#include <string>
void func(std::string);
#endif
额外的.cpp
#include <iostream>
#include "extra.h"
void func(std::string str) {
std::cout << str << '\n';
}
【问题讨论】:
-
您的代码看起来是正确的。你能更具体地谈谈你的问题吗?
-
抱歉没有详细说明。我浏览了一些不同的教程,其中一些建议在 .cpp 文件中包含头文件,而不是依赖传递包含,因此我想知道是否应该在 extra.cpp 和 main 中添加
#include <string>行。 cpp 也是如此。 -
什么是“最好的”是相当主观的。就个人而言,作为一般规则,我包括我使用的东西,但在这种情况下,这可能更像是一种风格。如果相同的开发人员控制
.h和.cpp文件,并且您知道extra.h包含<string>,那么您可能认为将其包含在.cpp中是可选的。但这只是我的看法。