Essential C++ 读书笔记 Ch2

2.1如何编写函数

函数的4个部分:返回类型,函数名,参数列表,函数体。

2.2函数的调用

两种参数传递方式:by value 和 by reference。

pass by reference

面对reference的所有操作都和面对“reference所指的对象”所进行的操作无二。
将参数声明为reference的两个理由:1.希望直接对所传入的对象进行修改。2.希望降低复制大型对象的额外负担。如果目的仅仅是2,那么建议加上const。
pointer 可能并不指向某实际的对象。提领pointer是,一定要先确认其值非零。

作用域 scope

file scope内的对象具有所谓的static extent,意思是该对象的内存在main()开始执行之前即已经分配好。

动态内存管理

heap memory是由程序员自行管理的内存。

2.3提供默认参数值

默认参数值的resolve操作由最右边开始执行。
默认参数值只可以指定一次,为了更高的可见性,我们决定将默认值放在函数声明处而非定义处。

2.4使用局部静态对象

file scope对象会打断各个函数之间的独立性,使他们难以理解。

2.5 声明inline函数

2.6 重载

参数列表不相同(参数类型不同,或者是参数个数不同)的两个或多个函数可以拥有相同的名称
为什么返回类型不足以将函数重载?返回类型无法保证提供给我们一个区分不同的重载函数的语境。

2.7 定义并使用模板函数

2.8 函数指针

const vector<int>* (*seq_ptr)(int);是一个函数指针的定义。
其中,const vector<int>是这个指针所指函数的返回类型,(int)是那个被指向函数的参数列表。现在seq_ptr可以指向“具有所列返回类型及参数列表”的任何一个函数。

索引值

由关键字enum定义。(枚举类型)

2.9 设定头文件

函数的声明应该放在头文件中,而定义放在代码文件中。
函数可以被声明多次,但只能有1份定义。

posted @ 2021-10-19 20:35  柚子z  阅读(29)  评论(0)    收藏  举报