1、C++内联函数
1、C++内联函数的编译代码与其他程序代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联函数,程序无需跳到另一个位置处执行代码,然后再跳回来。因此,函数的运行速度比常规函数稍快,但代价是需要更多的内存。如果函数在10个不同的地方调用同一个内联函数,则该程序将包含该函数10个代码拷贝。
2、操作如下:
1、函数声明前加上inline;
2、函数定义前加上inline;
3、通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方。(编译器不一定满足请求)。
内联函数不能递归。
4、inlinedoublesquare(doublex){returnx*x; }函数不应过大
1、intrats; int&rodents=rats;
上述引用声明允许rats与rodents互换,它们指向相同的值和内存单元。
2、引用于指针的区别。
1、声明引用时进行初始化。Int&robent; robent=rat; //wrong
2、不能改变引用对象,否则原来的对象也会被更改。
Intrats=100;
Intbunies=50;
Int&robent=rats;
robent=bunies; ------------robent=rats=50;//rats也变
3、如果实参与引用参数不匹配,C++将生成临时变量。仅当参数为const引用时,C++才允许这样做。
Doublerefcube(constdouble&ra); 一下情况将生成临时变量:
1、Longedge; Doublec1=refcube(edge);//类型不对
2、Doublec2=refcube(7.0);//类型对,但没有名称,下例也是
3、doubelside=10.0; Doublec3=refcube(side+10.0);
这些情况下,编译器将生成一个临时匿名变量,并让ra指向它,这些临时变量,只在函数调用期间存在,此后编译器可以随意的删除。
3、将引用用于结构
应避免返回当函数终止时不在存在的内存单元引用(如函数中定义的结构体)。解决方法有:
1、返回一个作为参数传递给函数的引用。
2、使用new分配内存。
默认参数值的是当函数调用中省略了实参时自动使用的一个值。
对于带参数列表的函数,必须从右向左添加默认值,实参按从左到右赋值。
函数重载的关键是函数的参数列表——也称为函数特征标。 而不是取决于函数类型。
C++如何跟踪每一个重载函数呢?
本文深入探讨C++中的内联函数、引用变量等特性。详细解释了内联函数的工作原理及其实现方法,以及引用变量与指针的区别。此外,还讨论了函数重载和默认参数的使用。
2867

被折叠的 条评论
为什么被折叠?



