Effective C++回顾(2)

原创 2006年05月22日 23:21:00

条款3:尽量以newdelete取代mallocfree

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

 

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

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

1.  懒惰。

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

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

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

 

待续

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Effective C++ 2nd Edition (4)

十一. 如果class内动态配置有内存,请为此class声明一个copy constructor和一个assignment运算符简陋的string classclass String { publ...

Effective C++(1-2) 编译器替换预处理器

1 C++最主要的四部分: CObject-Oriented C++: 面向对象Template C++:泛型编程STL C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。 ...

Effective C++第二章-构造,析构,赋值 -2

operator=返回一个reference to * this协议:赋值操作符必须返回一个reference指向操作符(&)的左侧实参。class Widget{ public: ... W...

Effective C++读书笔记2

条款4 确定对象被使用前已被初始化      读取未初始化的值会导致不明确的行为,在某些平台上,仅仅只是读取未初始化的值,就可能让你的程序终止运行。对象的初始化动作何时一定发生,何时不一定发生的规则...

effective c++ 尽量少做转型动作(2)

C风格的转型动作 (T)expression //将expression转型为T 函数风格的转型动作 T(expression)//将expression转型为T旧式转型依旧合法,但是新式转型较...

《Effective Modern C++》读书笔记(2) -- auto类型推导(auto type deduction)

模板类型推导涉及模板(template),函数(functinos)和参数(parmeters),但是auto并没有处理处理这些问题。auto类型推导auto作为C++11新添加的特性之一,很强大,即...

Effective c++条款1-2总结

开始看Effective c++里面有一些自己不知道的特殊名词和一些应该知道的知识感觉自己不懂,通过查找资料总结了一下希望对自己和其他人有用 1、符号表 英语为symbol table, 翻译成"符号...

Effective C++笔记(2)—使用const

尽可能使用const

Effective C++ 3e----new & delete(八)条款2:写了placement new也要写placement delete

More Effective C++(2)

在ctor中抛异常的时候例如  class Base{ public: Base(object* pValue){ try{ //TODO ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)