您的位置:首页 > 编程语言 > C语言/C++

【C++学习02】《Essential C++》第二章(Procedural Programming)笔记

2015-03-15 14:49 232 查看
看的慢悠悠,心不在焉。但是最后两节看崩了。一节叫函数指针带来更大的弹性,一节叫设定头文件。

1.除非仅仅想编写规模不大的程序,否则将整个程序写在main()函数里头是一种不切实际的做法。

2.同第一章3.

3.函数必须先被声明,然后才能被调用。

4.终止整个程序,#include<cstdlib> exit();

5.函数只能返回一个值。

6.return可以不返回任何数值,仅在返回值为void时使用,用来提前结束函数的执行。 return;

7.两种参数传递方式:传址(by reference)及传值(by value)。

8.程序第一次执行时结果不正确,本属稀松平常。重点是接下来如何修改。

9.很不幸,这不是我们企图理解的问题所在。如果你和我一样,对于问题非常执拗,你可能会苦思再三,企图杀出一条血路。然而有时候我们需要的不是顽强的气质,而是有人为我们指点迷津。

10.实参和形参之间唯一的关联,不过是拥有相同的值罢了。原对象和副本之间没有任何关联。

11.面对reference的所有操作都和面对”reference所代表的对象“所进行的操作一般无二。

12.以by reference方式将对象作为函数参数传入时,对象本身并不会复制出另一份——复制的是对象的地址。函数中对该对象进行的任何操作,都相当于对传入的对象进行间接操作。

13.使用by reference的理由:1)直接对所传入的对象进行修改。2.降低复制大型对象的额外负担(此时,可以reference to const type)。

14.pointer参数和reference参数差异:1.使用方法不同。2.pointer可能(也可能不)指向某个实际对象,提领pointer时,一定要确定其值非0。至于reference,则必定会代表某个对象,所以不需要作此检查。

15.函数如果过度依赖定义于file scope内的对象,就比较难以在其他环境中重用,也比较难以修改。

16.默认值参数提供的两个规则:1)默认值的解析(resolve)操作由最右边开始进行。如果我们为某个参数提供默认值,那么这一参数右侧的所有参数都必须也具有默认参数值才行。2)默认值只能够制定一次,可以在函数声明处,亦可以在函数定义处,但不能再两个地方都制定。通常放在函数声明处(头文件)。

17.只要在函数前面加上关键字inline,便可以将该函数声明为inline。inline函数的定义,常常在头文件中。

18.重载(overload)函数,参数列表(parameter list)不相同(可能是参数类型不同,可能是参数个数不同)的两个或多个函数,可以拥有相同的函数名称。

19.编译器无法根据函数返回类型来区分两个具有相同名称的函数。因为调用函数不写出返回类型,所以返回类型无法保证提供给我们一个足以区分不同重载函数的语境。

20.一般而言,如果函数具备多种实现方式,我们可将它重载,其每份实例提供的是相同的通用服务。如果我们希望让程序代码的主题不变,仅仅改变其中用到的数据类型,可以通过function template达到目的。

21.Pointer to functions.

22.函数定义只能有一份,但可以有多份声明。例外:1.inline函数。2.const object。

23.关于使用双引号和尖括号括头文件的问题:1)如果头文件和包含此文件的程序代码文件位于同一个磁盘目录下,我们便使用双引号。如果在不同的磁盘目录下,我们便使用尖括号。2)更有技术含量的回答是,如果此文件被认定为标准的或项目专属的头文件,我们便以尖括号将文件名括住;编译器搜索此文件时,会先在某些默认的磁盘目录中寻找。如果文件名由成对的双引号括住,此文件便被认为是一个用户提供的头文件;搜索词文件时,会由要包含此文件的文件所在的磁盘目录开始找起。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: