1

如果我创建这样的标题:

#ifndef _MY_HEADER_H
#define _MY_HEADER_H

#include <iostream>
void foo();

#endif

有了它对应的 .cpp 文件,我需要在main.cpp文件中包含iostream吗?

4

2 回答 2

0

回答你的问题:不,你不需要(再次)包括它。

但最好的做法是在标题中仅包含标题正常工作所需的内容。所以如果你的foo()方法需要iostream,你应该包括它。如果您创建一个只使用指向其他类的指针或引用的类,您应该更喜欢前向声明而不是包含相应类的完整标题。

于 2013-07-29T12:37:47.627 回答
0

不需要在main.cpp中再次包含它,因为在main.cpp版本中如果包含相同的.h版本,在编译时会自动包含,为什么要多写多余的行?

于 2013-07-29T12:37:19.157 回答