我想开始偏爱免费(非成员)功能而不是成员函数-在本文http://www.drdobbs.com/184401197之后
我习惯于以这种方式来组织我的C ++类,这ClassName.h对于声明和ClassName.C实现都是必需的。
ClassName.h :
struct ClassName {
ClassName();
void setData( unsigned data );
};
Run Code Online (Sandbox Code Playgroud)
然后实现
ClassName.C :
#include "ClassName.h"
ClassName::ClassName() { dosomething(); };
void setData( unsigned data ) { dootherthings(); };
Run Code Online (Sandbox Code Playgroud)
那么,当我想要一个自由功能时,如何组织代码adjustClassData()?我也想将此函数放入命名空间。
假设ClassName在中namespace foo,那么我也将free函数放入其中namespace foo:
namespace foo {
void adjustClassData( ClassName & inObj );
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找namespace文件名的方面和建议。
我正在寻找一些最佳实践-因为在规定文件组织的标准中没有C ++规则。
您可以将处理特定类的空闲函数放在类头和实现文件中(如果没有太多)。
否则,提出一个命名约定并将它们放在单独的头文件和实现文件中(例如ClassNameFunctions.h / .cpp)。