在 C++ 中,我们将非成员函数放在哪个文件中?
In which file do we put non-member function in C++?
C++中非成员函数的一般做法是什么?我们是将它们放在 main.cpp 或头文件或 class 实现文件中,还是为它制作一个单独的 .cpp 文件?
如果通常的做法是单独制作一个文件,那么我们把非成员函数头(prototype)放在哪里呢?它只进入 main.cpp 还是两者都进入?
您的 class 应该有自己的 .cpp 文件。非成员函数应该放在其他文件中(全部放在一起或根据相似性分组)。这是北美的惯例,但惯例不同。原型只需要进入头文件,这样你就可以在任何地方使用它。
我会说您不应该将非成员函数与 类 和成员函数以及其他符号区别对待。
您应该为每个 您的应用程序的逻辑组件(模块)。
所有public符号在头文件中应该是declared/defined(无论它们是非成员函数还是其他)和所有非public 符号和所有必需的定义应该放在 源文件 .
中
简而言之,根据逻辑程序组件进行分组,而不是根据 symbol/function 的类型分组。
伪代码的总体思路:
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
只要编译通过,就应该考虑readability(任何人都容易阅读)和accessibility(任何人都容易找到和调试)。
C++中非成员函数的一般做法是什么?我们是将它们放在 main.cpp 或头文件或 class 实现文件中,还是为它制作一个单独的 .cpp 文件? 如果通常的做法是单独制作一个文件,那么我们把非成员函数头(prototype)放在哪里呢?它只进入 main.cpp 还是两者都进入?
您的 class 应该有自己的 .cpp 文件。非成员函数应该放在其他文件中(全部放在一起或根据相似性分组)。这是北美的惯例,但惯例不同。原型只需要进入头文件,这样你就可以在任何地方使用它。
我会说您不应该将非成员函数与 类 和成员函数以及其他符号区别对待。
您应该为每个 您的应用程序的逻辑组件(模块)。
所有public符号在头文件中应该是declared/defined(无论它们是非成员函数还是其他)和所有非public 符号和所有必需的定义应该放在 源文件 .
中简而言之,根据逻辑程序组件进行分组,而不是根据 symbol/function 的类型分组。
伪代码的总体思路:
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
只要编译通过,就应该考虑readability(任何人都容易阅读)和accessibility(任何人都容易找到和调试)。