Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我创建这样的标题:
#ifndef _MY_HEADER_H #define _MY_HEADER_H #include <iostream> void foo(); #endif
有了它对应的 .cpp 文件,我需要在main.cpp文件中包含iostream吗?
回答你的问题:不,你不需要(再次)包括它。
但最好的做法是在标题中仅包含标题正常工作所需的内容。所以如果你的foo()方法需要iostream,你应该包括它。如果您创建一个只使用指向其他类的指针或引用的类,您应该更喜欢前向声明而不是包含相应类的完整标题。
foo()
iostream
不需要在main.cpp中再次包含它,因为在main.cpp版本中如果包含相同的.h版本,在编译时会自动包含,为什么要多写多余的行?