Effective C++ 学习心得——让自己习惯C++

来源:互联网 发布:网上订餐系统java简历 编辑:程序博客网 时间:2024/05/01 22:20

前言:

其实当我写学习心得的时候,我已经把这本书都看完了,不过因为寒假忙着刷题,没有心思回头来总结。只能把这一部分的收尾工作现在来做了。不过这样做同样也有好处,在写东西的时候可以再复习一次,加深印象。

我的github:

寒假刷了150题的leetcode,现在也放在了我的github里,不仅仅有每一题的解题代码,还记录了我解题的时候的思路,以及遇上的问题。是一个很好的总结,欢迎大家前去参观。

https://github.com/YinWenAtBIT

一、导读:

1.1知识点摘要:

1. 声明式:告诉编译器摸个东西的名称和类型,但是忽略细节。外部对象声明,函数声明,类声明都是

2. 定义式:给编译器提供一些声明式所遗漏的细节,对对象而言,定义式是编译器为此对象拨发内存的地点。

3. 初始化:是给对象初值的过程。

4. 被声明为explicit的构造函数通常比implicit的构造函数更好,因为可以避免非预期的类型转换。

4. 虽然使用=号,但是如果有对象被新建立,那么调用的一定是拷贝构造函数。

二、条款:

01:视C++为一个语言联邦:

C++使用的时候可以分成四块:C,C with Class,templateC++, STL。这四个部分通常会在使用C++的时候出现明显的界限。通常我写的代码是C with Class 和 STL模块中。

02:尽量以const, enum, inline 替换#define:

const, enum替换常量, inline替换掉宏定义函数

另外使用#define的常量,会在预处理的时候被替换,没有进入符号表,在遇上问题的时候不好调试。

03:尽可能使用const:

const出现在*号左边,代表被指物是常量,出现在*号右边,代表指针是常量,可以按照从右往左的顺序结合解析const。

当const和 non-const成员函数有着实质的等价实现时,领non-const版本调用const版本。

04:确定对象被使用前已经先被初始化:

永远在使用对象之前将它初始化。

在构造函数中,使用成员初值列效率比赋值高。

C++有固定的成员初始化顺序,base类比derived类更早初始化

三、总结:

第二遍看的时候,确实有了更多的收获,比如singleton模式,最开始的时候不明白是什么,现在完全理解了。更多的是忘记了这些条款,再次回忆。这样的复习效果应该听不凑。


0 0
原创粉丝点击