《C++沉思录》书中的一句话:

原创 2006年06月06日 12:23:00

P11

     “尽管C++程序天生不如相应的C程序快,但是C++是我能在自己的智力所以得范围内使用一些高超的技术,而对我来说,用C来实现这些技术太困难了。”------------《C++沉思录》

      看到一位兄弟的留言,对这句话我也没有什么见解,只是在自己在读到这里的时候停留的时间长一些,所以自己同时也就把他给记了下来。下面是我读这本的感受来和大家一起讨论C++。

     书的作者站在使用者的角度来看C++,同时作者对C++的发展和演化有着很大的影响。通过读这本书使我认识到只对一本书是学不好C++的,即便这本书由多么的经典(比如说:C++ Primer, Thinking C++),而且对C++的发展过程我们也要有个了解,这样对我们学好C++会有很大的帮助。

     在这本书的第四章讲的是“类设计者的审核表”,书中讲述的问题和《Effictive C++》中的条款,有些内容有点相似, 比如说: 删除数组时你记住用delete[ ]吗?记得在复制构造函数和赋值操作符的参数类型中加上cosnt了吗?等。在编程中,时刻记住这些条款和问题,把自己的程序和这些条款和问题作个对比,看看写出来的程序是否还有没有和这些条款相违背的地方,当然了也并不是所有的都要和这些一致,比如:在设计函数入参的时候,参数都会做一个拷贝,在函数内部我们使用的是这个拷贝,当入参为一个大对象是,我们就可以就直接使用它的引用就可以了,而如果只是一个int,就完全没有必要了,直接用就行了。下面把这些问题列出来,已备以后查阅:

1. 你的类需要一个构造函数吗?
2. 你的数据成员是私有的吗?
3. 你的类需要一个无参的构造函数吗?
4. 是不是没个构造函数初始化所有的数据成员?
5. 类需要析构函数吗?
6. 类需要一个虚析构函数吗?
7. 你的类需要复制构造函数吗?
8. 你的类需要一个赋值操作符吗?
9. 你的赋值操作符能正确地将对象赋给对象本身吗?
10. 你的类需要定义关系操作符吗?
11. 删除数组时你记住用delete[ ]吗?
12. 记得在复制构造函数和赋值操作符的参数类型中加上cosnt了吗?
13. 如果函数有引用参数,他们应该为cosnt引用吗?
14. 记得适当的声明成员函数为const了吗?

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

相关文章推荐

C++沉思录读书笔记(6章)-句柄:第一部分

创建代理会复制所代理的对象,如何避免这些复制呢?        可以通过句柄(handle)类来实现。句柄类和智能指针有点类似,通过重载句柄类的*和->操作符,可将句柄类改造称为智能指针。    ...

C++沉思录读书笔记(三)

一个面向对象的程序范例 面向对象编程的3个要素:数据抽象、继承及动态绑定。这个例程非常完整的展示了这3个要素。 程序要做的内容就是要将这个算术表达树输出,即得到:(-5)*(3+4)   ...

C++沉思录读书笔记(1-3章)

C++的核心概念是类 C语言的方案缺乏一个合适的位置来存放辅助的状态信息,这会导致这种方案的扩展很困难 C++鼓励使用类来表示事物,而类就提供了一个理想的位置来防止状态信息 编程就是通过...

c++沉思录笔记(21章代码)隐藏中间类型

上次我们已经可以复合(组合)函数了,我们可以写出下面的代码 int main() { Comp fg(f, g); fg(42); } 但是,这么繁琐的对象创建,能不能简化...

C++沉思录读书笔记(27章)- 设计自己跟踪自己的类

这篇文章的目的是设计提供有关函数执行和类操作调试信息的类 1.一个简单函数跟踪类的设计 class Trace //跟踪类 { public: Trace(const char*...

函数对象-摘自《C++沉思录》Andrew Koenig

函数对象提供了一种方法,将要调用的

函数配接器-摘自《C++沉思录》Andrew Koenig

第21章介绍了一个

C++沉思录学习笔记

转载学习笔记,学习一下~~~ 第一篇  动机   讲述C++什麽地方吸引了作者,和作者为什麽要在编程中使用C++。   一开始,作者就提出了C++本质——抽象和封装:类。 抽象可以帮助设计者可以...

C++沉思录 第八章 面向对象程序范例

c++沉思录第八章的示例程序很有意思。程序虽小,却很好地诠释了面向对象编程的思想。 正如书上说的仔细研究还是有所收获的。先上代码codeExpr_node.h#pragma once #includ...

c++沉思录笔记(19章代码上集)

首先给出一个函数 template Out copy(In start, In end, Out dest) { while (start != end) { *dest++ = *sta...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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