我受this question下的评论的启发。
我没有看到为什么只有静态函数的类比名称空间(仅使用函数)更好的设计的原因。欢迎任何这两种方法的优缺点列表。一些实际的例子会很棒!
答案 0 :(得分:9)
一个非风格上的区别是您可以使用类作为模板参数,但不能使用命名空间。这有时用于策略类,如std::char_traits
。
在该用例之外,我会坚持使用常规函数的命名空间。
答案 1 :(得分:3)
使用静态方法的类
命名空间
- 您可以创建名称空间别名
好吧,你可以namespace io = boost::iostreams;
typedef
课,所以这是没有实际意义的。
您可以将符号导入另一个名称空间。
namespace mystuff
{
using namespace boost;
}
您可以导入所选符号。
using std::string;
它们可以跨越多个文件(非常重要的优势)
内联命名空间(C ++ 11)
底线:命名空间是C ++的最佳选择。