Effective C++回顾(2)

来源:互联网 发布:tensorflow java版本 编辑:程序博客网 时间:2024/04/28 14:48

条款3:尽量以newdelete取代mallocfree

取代没有问题,这个对于了解c++语言的人都了解它们之间的不同,可是往往在代码中很多时候还是会出现混淆。主要原因是,虽然我们使用C++来书写代码,可是程序中会大量使用一些C语言库和一些早期的C语言书写的公共库,所以在什么时候对返回的内存要调用delete,什么时候要调用free,对于一些维护项目和新员工来讲,还是一个非常复杂的问题。由于程序在很多的情况下,混淆释放内存函数,并不会引起程序问题,在这种情况下也就更难以发现问题了。为了解决这个问题,我们想出了一个办法,就是对于new出来的对象,我们是返回一个autoptr类,对于malloc出来的,返回的就是一个void *,采用这种方法之后,混淆释放内存函数基本上就再也没有出现过,同时也接近了采用了面象对象的方法了。

 

条款4:尽量使用C++风格的注释形式

这是我自己认为实现的最彻底的条款。问题的关键,我们不是用来写注释,而是用来注释代码,这两个是有很大的区别的。对于程序中要不要书写注释,我也看到过很多的书都讲了它的重要性,可是自己也阅读了很多的SDK,发现注释虽有,可是少的可怜,而且很多情况下,一些注释还会引起一些误解。自己在开发程序这么多年,写过的注释少的可怜,数都数的过来。我想主要是有下面几个原因:

1.  懒惰。

2.  认为代码就是最好的注释。

3.  对于一些注释,由于后来的功能发生了变化,没有及时的更新注释,注释变成了误释了,所以也就认为没有必要了。

对于代码中要不要写注释,自己还是很茫然。

 

待续

原创粉丝点击