在C ++中使用非成员函数时,通常的做法是什么?我们将它们放在main.cpp或头文件或类实现文件中,还是为它们创建一个单独的.cpp文件? 如果通常的做法是创建一个单独的文件,那么我们在哪里放置非成员函数头(prototype)?它只在main.cpp中或两者中都有吗?
答案 0 :(得分:4)
我想说你不应该对类和成员函数以及其他符号区别对待非成员函数。
您应为每个逻辑组件创建不同的标头文件 .h
和相应的源文件 .cpp
(模块)您的申请。
所有公共符号都应在头文件中声明/定义(无论它们是非成员函数还是其他函数),所有非公共符号和所有必需的定义都应该在中源文件。
简而言之,根据逻辑程序组件进行分组,而不是按符号/函数的类型进行分组。
答案 1 :(得分:0)
您的类应该有自己的.cpp文件。非成员函数应该放在其他文件中(所有文件一起或根据相似性分组)。这是北美的惯例,但惯例不同。原型只需要进入头文件,这样你就可以在任何地方使用它。
答案 2 :(得分:0)
伪代码中的一般想法:
if (it will be used in other cpp files)
put the declaration in a header file.
implement it in a header or a cpp file.
else
if (only need it in some functions in a header file)
if (it's a function more than N line ) // please define this N in your mind
declare it in the same header and implement it in a cpp file
else
put it in the same header file
else // used in cpp only
put it in the cpp file
只要编译,您就应该考虑可读性(任何人都可以轻松阅读)和可访问性(任何人都可以轻松查找和调试)。