C++ Primer_函数杂记

1.如果使用引用形参的唯一目的是避免复制实参,那么应该将其声明为const引用。

2.C++程序员倾向于通过传递指向容器中需要处理元素的迭代器来传递容器。

3.通常,将数组形参直接定义为指针要比使用数组语法定义好。这样就明确的表示,函数操纵的是指向数组元素的指针,而不是数组本身。

4.编译器检查数组形参关联的实参时,他只会检查实参时不是指针,指针的类型和数组元素的类型是否匹配,而不会检查数组的长度。

改变这一弊端的方法是通过引用传递数组。如GetValue(int (&a)[10]);这样编译器就会连数组的元素个数也一起检查了。

5.含有可变形参的函数:形如void foo(...);省略符暂停了类型检查机制。

6.主函数main的返回值:cstdlib头文件里定义了两个预处理变量EXIT_SUCCESS EXIT_FAILURE分别用以标示程序运行成功和失败。

7.返回非引用类型时要进行复制,而引用类型不经过复制。

8.如果一个形参具有默认实参,那么他后面的形参也必须有默认实参。

9.默认实参只能用来替换函数调用缺少的尾部实参。例:GetValue(int height=1;int width=3;int background)如果要给background提供实参,也要给height和width提供实参。

10.内联说明对于编译器来讲只是一个建议,编译器可以选择忽略这个建议。编译器隐式地将在类内定义的成员函数当做内联函数。

11.每个成员函数都有一个额外的,隐含的形参this,形参this初始化为调用函数的对象的地址。

12.函数重载和函数重复声明的区别:

如果两个函数声明的返回类型和形参表完全匹配,则将第二个函数声明视为第一个的重复声明。如果两个函数的形参表完全相同,但返回类型不同,则第二个声明是错误的。

13.typedef只是给已存在的数据类型提供别名,但并没有创建新的数据类型。

14.每一个函数的重载都应在同一作用域中声明。

15.重载函数的最佳匹配原则:实参类型与形参类型越接近则匹配越佳。

16.在实际应用中,调用重载函数时应该尽量避免对实参做强制类型转换。

17.通过类型提升实现的转换由于其他标准转换。

18.没有哪个标准转换比其他标准转换具有更高的优先级。

19.整型值无法传递给枚举类型的形参,但可以将枚举值传递给整形形参(类型提升)。

20.可基于引用是否为const实现函数重载而不能通过指针是否为const实现。

21.指向函数的指针声明时注意优先级。bool (*pf)(const string &,const string &);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值