我无法理解在cpp中制作类的过程。
如果在头文件中包含字符串,我是否还必须在实现头文件的cpp文件中包括相同的头文件?
答案 0 :(得分:2)
如果您使用标头中的声明或定义,则必须包含该标头。包含标头确实会过渡性地包含该标头包含的所有标头。
您绝不能依赖不受您自己控制的标头(即标准标头或库标头)中的传递包含,因为这些包含可以在不同版本之间发生变化。除非正确地记录了文档,否则也要依靠自己的标头的传递包含,这是一个糟糕的设计,因为这种依赖会产生不可见的依赖关系。
PS。不推荐使用<string.h>
头,而推荐使用<cstring>
头。
PPS。 <string.h>
未定义std::string
。在标题<string>
中。
答案 1 :(得分:1)
否,如果cpp文件包含头文件,则无需再次包含它。不过,即使这样做,也不会造成任何伤害,因为Include guard。