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份定义。

浙公网安备 33010602011771号