【C++ Primer plus】【第八章】函数探幽

本章主要涉及引用,重载,模板三个方面

【引用】

1.内联函数不能递归

2.引用是已经定义好变量的别称,其作用是不再是值传递的副本,而是数据本身。

3.必须在声明引用变量时初始化,其伪代码类似于int * const型,可以改变其值

4.引用的函数声明 int swap(int &a,int &b)

5.引用参数是const条件下,有两种情况会产生临时变量

类型正确,但不是左值;

类型不对,但是可以转换成对的

(无名称的会生成匿名临时变量)

6.对于变量,不可以变化,是因为有可能有对入参变化的需求,但是生成新的后,功能达不到预期

7.所以,const除了逻辑上的保证,还能简介促使引用的临时变量生成

8.结构体的返回值,是引用时,返回的是实际结构体的引用,否则是真实的结构体

9.引用已经释放的内存会异常,如局部标量的

10.基类引用可以指向派生类对象

11.read only 入参时:

很小:用内联,值传递

数组:只能指针

结构体:指针,引用

类:引用

【重载】

12.重载时:把类型引用和类型视为同一特征表(参数列表),const视为不同的特征

13.匹配函数式,不区分cosnt,非const,就是非const可以给const型入参,const不能给非const

【模板】

14.template <typename/class T>

void func(T a){}

15.建议模板放在头文件里,因为他本身并不是定义

16.显示具体化:

非模板函数>常规模板函数>显示具体化模板函数



template <> void swap<job>(JOB A)   具体化相当于特殊处理

参见:http://powerelite.blog.163.com/blog/static/4296589120123255137791/

17.匹配函数标准,再讨论


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值