我正在学习C++(不是我的选择),遇到了一些没有.cpp文件的类。我被告知类应该在2个文件中实现:头文件(.h)和源文件(.cpp),但似乎并非总是如此。 我的问题是: 何时以及为什么优先在头文件(.h)中实现类方法,而何时不需要?
实现模板类的代码实际上必须放在头文件中(尽管可以参考下面链接中描述的替代方法)。非模板类确实建议按照您所描述的方式进行拆分。请参见为什么模板只能在头文件中实现?。一些库(仅包含头文件的库)仅由头文件组成,这是一种特殊的设计决策。它们有优点和缺点,请参见https://en.wikipedia.org/wiki/Header-only。我认为这可能不是您所问的,但用户super在此答案的评论中提供的贡献值得一提。
swap
(成员和非成员)、移动构造函数、移动赋值运算符、析构函数等。例如,在排序算法的执行时间中,这些函数是否被内联可能会有很大的差异。 - Daniel Langr