#编码风格# #Google C++# 谷歌经验技巧(Google-Specific Magic)

本文深入探讨了智能指针(如scoped_ptr和shared_ptr)在C++中的应用,以及它们如何提升代码的健壮性和清晰度。同时,介绍了谷歌内部使用的代码风格检查工具CPPlint.py,解释了其工作原理和如何使用该工具来提升代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       

目录

智能指针(Smart Pointers)

CPPlint


       谷歌采用很多技巧和工具来确保C++代码的健壮性,而且,谷歌使用C++的方式和其他地方很不同。

 

智能指针(Smart Pointers

        如果使用指针,最好使用受限指针(soped_ptr)。而std::tr1::shared_prt只有在很少的情况下都会用得到,比如对象需要被标准模板库容器包含。任何情况下不要使用自动指针(auto_ptr)

        智能指针是指行为类似于指针但增加额外功能的对象。当一个scoped_ptr被销毁时,它也将删除其指向的对象删除。shared_prt也具有类似功能,但它会实现引用计数直到它指向的最后一个对象删除它。

        通俗点说,我们希望定义清楚每个对象的归属。但最清楚的对象归属是此对象被域或者局部变量拥有,而不是使用指针。另一个极端是,在它们被定义时,引用计数指针不被任何对象拥有。这种定义的问题是,这样将很容易循环引用或者对象⽆无法被销毁的奇怪现象。而每个原子操作都进行复制或赋值将影响性能。

        即使不提倡,引用计数指针有时却是最简单和幽雅的问题解决方式。

 

CPPlint

        使用cpplint.py来检测风格错误。

        Cpplint.py是一个能读取源文件并识别风格错误的工具。尽管不很完美,有很多优点和缺点,但它仍是一个有用的工具。主动错误信息可以将// NOLINT放在行后来忽略。

        有些项目带有如何从项目工具运行cpplint.py的说明。如果没有,你可以单独下载它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值