我可以在头文件(在 C++ 中)中同时指定函数原型和函数定义吗?

Can I specify both, the function prototype and function definition in a header file (in C++)?

我想澄清一下我是否可以在头文件中同时指定函数原型和函数定义?

我是否需要创建一个源文件来定义在头文件中声明的函数?

谢谢...

Is it necessary for me to create a source file to define the functions which are declared in a header file?

不是必需,只是推荐。

如果您在 header 文件中有一个函数 defined,它将在每个翻译单元中 defined(来源文件),其中包含 header.

除非你采取措施避免它,否则当你 link 各种翻译单元在一起时会导致错误 ("multiple definition...")。

避免这种情况的一种方法是声明函数 inline.

不过,一般来说,您最好在 header 中声明,在源文件 (翻译单元)中定义,这样既可以提高编译速度,也可以提高可维护性.

直到您进入 模板 函数的主题(几乎 在 header 中定义) .但它们是完全不同的野兽,此时我不会将您与它们混淆。 ;-)

是的,您可以在头文件中定义所有函数。这是在 header only libraries.

中完成的

通常不会这样做,因为它会导致代码膨胀和更长的编译时间,但这不是必需的。