最近不是很忙,准备重新温习一遍C++primer 第三版,并将重点记录在此,方便翻阅,希望能坚持写完。
之前一直搞错成第四版了,难怪有同学在群里说和他看到的不一样。第四版重新对章节进行了整理,并且对一些底层的内容做了舍弃,加重了标准库的介绍,个人觉得对于有一定C/C++使用经验的人一说,底层内容还是比较重要的。
第一部分
主要内容为第一篇 C++概述
1,procedural programming和object based programming,过程化程序设计的特点是一个问题可直接由一组算法来建立模型,数据和算法独立存储,而面向对象程序设计则是通过一组数据抽象来建立问题的模型,它通过inheritance和dynamic binding扩展了抽象数据类型(abstract data type)。
2,C++支持面向过程和面向对象的程序设计方法,这样的好处是对于不同的问题,能提供最合适的解决方案,也就是说,用正确的工具,做适合的事情。
3,几个有用的预处理器:__cplusplus(表示这是C++程序)、__STDC__(表示这是标准C程序)、__LINE__(当前行号)、__FILE__(当前源文件名)、__DATE__(当前文件被编译的日期)、__TIME__(当前文件被编译的时间)。
4,由于在各种C++实现中,头文件的后缀各有不同,因此,标准C++头文件没有指定后缀。C库头文件的C++名字总是以C开头,后面是去掉后缀.h的C名字。
5,操作符在iostream上执行的是一个操作,而不是简单地提供数据,比如,在标准输出上插入一个换行符,并刷新输出缓冲区,我们一般用cout<<endl;而不是cout<<"\n";这是因为,endl会调用flush函数来刷新输出缓冲区。
6,C++中的数组。C++对数组类型提供内置支持,但这种支持仅限于用来读写单个元素的机制,C++不支持数组的数据抽象,也不支持对整个数组的操作,并且数组本身没有“自我意识”,例如,它不知道自己的长度。这是因为,数组是C++从C继承而来,它反映了数据与其对应的操作算法的分离,而这正是面向过程程序设计语言的特征。C++其实是比较不推荐