《C++Primer Plus》学习笔记(七)
来源:互联网 发布:java 字符串查找 编辑:程序博客网 时间:2024/06/11 03:04
1、C++内联函数
1、C++内联函数的编译代码与其他程序代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联函数,程序无需跳到另一个位置处执行代码,然后再跳回来。因此,函数的运行速度比常规函数稍快,但代价是需要更多的内存。如果函数在10个不同的地方调用同一个内联函数,则该程序将包含该函数10个代码拷贝。
2、操作如下:
1、函数声明前加上inline;
2、函数定义前加上inline;
3、通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方。(编译器不一定满足请求)。
内联函数不能递归。
4、inline double square(double x){ return x*x; }函数不应过大
1、int rats; int & rodents = rats;
上述引用声明允许rats与rodents互换,它们指向相同的值和内存单元。
2、引用于指针的区别。
1、声明引用时进行初始化。Int & robent; robent = rat; //wrong
2、不能改变引用对象,否则原来的对象也会被更改。
Int rats = 100;
Int bunies = 50;
Int & robent = rats;
robent = bunies; ------------robent = rats = 50; //rats也变
3、如果实参与引用参数不匹配,C++将生成临时变量。仅当参数为const引用时,C++才允许这样做。
Double refcube( const double &ra); 一下情况将生成临时变量:
1、Long edge; Double c1 = refcube( edge ); //类型不对
2、Double c2 = refcube( 7.0 ); //类型对,但没有名称,下例也是
3、doubel side = 10.0; Double c3 = refcube( side + 10.0);
这些情况下,编译器将生成一个临时匿名变量,并让ra指向它,这些临时变量,只在函数调用期间存在,此后编译器可以随意的删除。
3、将引用用于结构
应避免返回当函数终止时不在存在的内存单元引用(如函数中定义的结构体)。解决方法有:
1、返回一个作为参数传递给函数的引用。
2、使用new 分配内存。
默认参数值的是当函数调用中省略了实参时自动使用的一个值。
对于带参数列表的函数,必须从右向左添加默认值,实参按从左到右赋值。
函数重载的关键是函数的参数列表——也称为函数特征标。 而不是取决于函数类型。
C++如何跟踪每一个重载函数呢?
- 《C++Primer Plus》学习笔记(七)
- c++primer plus阅读笔记(七)
- C++Primer Plus学习笔记
- 《C Primer Plus》学习笔记
- 《C Primer Plus》学习笔记
- C Primer Plus 学习笔记
- C Primer Plus学习 七 while语句
- 《C++.Primer.Plus》学习笔记(一)
- 《C++.Primer.Plus》学习笔记(二)
- (c primer plus第五版) 学习笔记
- c.primer.plus 学习笔记-- 1.概览
- 《C++Primer Plus》学习笔记(一)
- 《C++Primer Plus》学习笔记(二)
- 《C++Primer Plus》学习笔记(三)
- 《C++Primer Plus》学习笔记(四)
- 《C++Primer Plus》学习笔记(五)
- 《C++Primer Plus》学习笔记(六)
- 《C Primer Plus》学习笔记01
- 你知道哪些表面优惠其实稳赚的销售手段
- CentOS 5.6创建NFS文件共享服务器
- 《C++Primer Plus》学习笔记(四)
- 《C++Primer Plus》学习笔记(五)
- 《C++Primer Plus》学习笔记(六)
- 《C++Primer Plus》学习笔记(七)
- ORA-00997: illegal use of LONG datatype
- Oracle SQL Having Where Group by
- 浮点数的二进制表示学习笔记
- Algorithms Review: Divide and Conquer(Binary Search & Merge Sort)
- Oracle SQL string functions
- 关于C# this 指针
- Oracle returns NULL after join
- Spring学习笔记(AOP面向切面编程)