别怕Linux编程

Google C++编程规范 – 第二十六条 -《非成员函数、静态成员函数及全局函数》

本原创文章属于《Linux大棚》博客。

博客地址为http://roclinux.cn

文章作者为roc wu

==

【规范】

优先使用“具有名字空间的非成员函数”和“静态成员函数”,尽量不使用全局函数。

【支持者的声音】

非成员函数和静态成员函数在一些场景下是非常有用的。而且把非成员函数放到一个名字空间中,可以有效的避免“污染”到全局名字空间。

【反对者的声音】

非成员函数和静态成员函数,从某种意义上说,更像是一个新类的成员函数,尤其是当这些函数还要访问外部资源时。

【决定】

在一些场景下,的确有必要定义一些不依附于任何类的函数,它们往往以非成员函数和静态成员函数的形式存在。

非成员函数不应该依赖于外部的变量,且应该被放置在一个名字空间中。

假如一组静态成员函数之间并不共享数据,那么没必要为这组静态成员函数创建一个类,而用名字空间来管理就可以了。

如果你要定义一个非成员函数,并且仅在.cc/.cpp文件中使用它,那么可以将其放在匿名名字空间中,或者使用static(如static int Foo() {…})关键字来限制其作用域。

谢谢!

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *