何时仅创建头文件 类

When to create header file only classes

我正在学习 C++(不是我的选择)并且遇到了一些没有 .cpp 文件的 classes。有人告诉我 classes 应该在 2 个文件中实现:头文件 (.h) 和源文件 (.cpp),但似乎并不总是这样。 我的问题是: 何时以及为何首选在头文件 (.h) 中实施 class 方法,何时不实施?

模板化 类 的实施实际上必须进入 headers(尽管请参阅下面 link 中描述的替代方案)。
Non-templated 类确实建议按你描述的方式拆分。

Why can templates only be implemented in the header file?

一些库(header-only 库)仅包含 headers,这是一个特殊的设计决定。它们各有利弊,参见 https://en.wikipedia.org/wiki/Header-only
我认为这可能不是您要问的,但贡献(在对此答案的评论中,用户超级用户)值得一提。