我可以在头文件(在 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.
中完成的
通常不会这样做,因为它会导致代码膨胀和更长的编译时间,但这不是必需的。
我想澄清一下我是否可以在头文件中同时指定函数原型和函数定义?
我是否需要创建一个源文件来定义在头文件中声明的函数?
谢谢...
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.
中完成的通常不会这样做,因为它会导致代码膨胀和更长的编译时间,但这不是必需的。