可能重复:
In C++ why have header files and cpp files?
C++ - What should go into an .h file?
.cpp文件中通常定义的所有函数/方法都可以在.h文件中内联定义。那么使用.cpp的原因是什么?有效性?编译时间?
是否有一些标准可以保存在.h中,什么应该放在.cpp?
谢谢。
答案 0 :(得分:3)
与
有关基本上编译器能够编译所有文件,无论您将所有代码都放在.h或.cpp文件中。他们之间的分离有根本的优点
答案 1 :(得分:2)
答案 2 :(得分:2)
你不能内联一切。 对象可以定义一次,也可以只定义一次。只能多次定义类和模板,并且内联只允许重新定义函数。
例如,考虑 header.hpp:
extern int a;
struct Foo { static int b; };
以下必须进入专用的单个翻译单元:
#include "header.hpp"
int a;
int Foo::b;
另一方面,类 templates 的静态成员可以而且必须确实保留在标题中:
template <typename T> struct Foo { static int x; };
template <typename T> int Foo<T>::x;
链接器必须弄清楚如何统一对象。