聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

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

2014-01-16 03:15 浏览: 1784648 次 我要评论(0 条) 字号:

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

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

文章作者为roc wu

==

【规范】

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

【支持者的声音】

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

【反对者的声音】

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

【决定】

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

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

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

如果你要定义一个非成员函数,并且仅在.cc/.cpp文件中使用它,那么可以将其放在匿名名字空间中,或者使用static(如static int Foo() {&http://tiancai-z.stor.sinaapp.com/pictures/month_1401/201401160315106511.jpg8230;})关键字来限制其作用域。

谢谢!



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复