28 July 2022

C++ 核心指南目录

C.5: Place helper functions in the same namespace as the class they support

理由

帮助函数(Helper Function)虽然不需要直接访问类的内部数据,但也是类的有用接口。帮助函数和类放在一个名字空间里,可以强化他们的关系,查找函数时,可以根据参数类型获取提示信息。

例子

namespace Chrono { // here we keep time-related services

    class Time { /* ... */ };
    class Date { /* ... */ };

    // helper functions:
    bool operator==(Date, Date);
    Date next_weekday(Date);
    // ...
}

注意

此规则尤其适用于重载的操作符函数。

强化

标注那些参数类型都限定在同一个名字空间的全局函数。