c++ primer 学习摘抄之五 (第七章 函数)

1.如果函数已经被声明为inline( 内联),则函数体可能已经在编译期间它的调用点上就被展开,如果没有被声明为inline,则函数在运行时才被调用

2.尽管按值传递对内置数据类型的对象和小型类对象比较满意,但是对于大型类对象,它的效率就太低了。使用引用参数函数可以访问被指定为实参的类对象,而不必在函数的活动记录中拷贝它

3.如果一个参数可能在函数中指向不同的对象,或者这个参数可能不指向任何对象,则必须使用指针参数
引用参数的一个重要用法是它允许我们在有效地实现重载操作符的同时,还能保证用法的直观性

4.有时候我们无法列出传递给函数的所有实参的类型和数目,在这种情况下我们可以用省略号(...) 指定函数参数表

5.向一个函数传递参数发生错误的可能性随参数表的长度的增加而提高,作为一个通用规则8 个参数应该是最大值了。为了替换一个大型的参数,表程序员可以将参数声明为类、数组或某一种容器类型

6.inline 函数对编译器而言必须是可见的,以便它能够在调用点内联展开该函数。与非inline函数不同的是,inline 函数必须在调用该函数的每个文本文件中定义。当然对于同一程序的不同文件,如果inline 函数出现的话其定义必须相同。因此,建议把inline 函数的定义放到头文件中,在每个调用该inline函数的文件中包含该头文件。

7.int main( int argc, char *argv[] ) { ... }:argc 包含命令行选项的个数,argv 包含aygc 个C 风格字符串,代表了由空格分隔的命令选项。argv[0]总是被设置为当前正被调用的命令,从索引1 到argc-1 表示被传递给命令的实际选项。

8.对于指向函数的指针而言,只有当赋值操作符左边指针的参数表和返回类型与右边函数或指针的参数表和返回类型完全匹配时,初始化和赋值才是正确的;如果不匹配则将产生编译错误消息。在指向函数类型的指针之间不存在隐式类型转换

9.指向C 函数的指针与指向C++函数的指针类型不同。因此指向C 函数的指针不能用指向C++函数的指针初始化或赋值,反之亦然,如果没有这样做就会产生编译错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值