我想开始更喜欢免费(非成员)函数而不是成员函数 - 关注这篇文章 http://www.drdobbs.com/184401197
我习惯于以这种方式组织我的 C++ 类,我有 ClassName.h
用于声明,ClassName.C
用于实现。
ClassName.h :
struct ClassName {
ClassName();
void setData( unsigned data );
};
然后是实现
ClassName.C :
#include "ClassName.h"
ClassName::ClassName() { dosomething(); };
void setData( unsigned data ) { dootherthings(); };
那么当我想要一个自由函数 adjustClassData()
时,我该如何组织我的代码呢?
我也想把这个函数放到命名空间中。
假设 ClassName
在 namespace foo
中,那么我会将 free 函数也放入 namespace foo
中:
namespace foo {
void adjustClassData( ClassName & inObj );
}
我正在寻找 namespace
的方面和文件名的建议。
我正在寻找一些最佳实践 - 因为在规定文件组织的标准中没有 C++ 规则。
最佳答案
如果没有太多,你可以把处理特定类的自由函数放在类头和实现文件中。
否则,想出一个命名约定并将它们放在单独的头文件和实现文件中(例如 ClassNameFunctions.h/.cpp)。
关于自由函数的 c++ 源代码组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903486/