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

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

本文关键字:函数 原型 定义 文件 C++ 我可以      更新时间:2023-10-16

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

我有必要创建一个源文件来定义在头文件中声明的函数吗?

谢谢。。。

我有必要创建一个源文件来定义在头文件中声明的函数吗?

这不是必需的,只是建议使用。

如果在头文件中定义了函数,则在包含该头的每个翻译单元(源文件)中都将定义该函数

除非你采取措施避免它,否则当你将各种翻译单元链接在一起时,这将导致错误("多重定义…")

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

不过,一般来说,您最好在头中使用声明,在源文件(翻译单元)中使用定义,以提高编译速度和可维护性。

直到您进入模板函数的主题(这些函数几乎都有要在头中定义)。但它们完全是另一种野兽,在这一点上我不会把你和它们混淆

是的,您可以在头文件中定义所有函数。这是在仅表头的库中完成的。

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