在C++中,要调用一个函数必须先申明这个函数,即在main()函数以前申明这个函数,但函数的定义则能够放到main()函数以后。ios
对于一个给定的函数能够进行屡次调用函数
当函数的调用时,函数的实参与形参传递方式有两种:spa
第一种就是直接将实参(argument)传递给形参(variable),这种方式传递给函数体的值在函数体内部发生改变时不会影像到实参自己code
第二中是经过reference的方法将实参(argument)传递给形参(variable),reference方法仅在形参前加了一个ampersand符号,这种方式会把实参和形参关联在一块儿,在函数体内发生的参数变化会影像到实参的变化,例如:资源
// passing parameters by referencestring
#include <iostream>io
using namespace std;效率
void duplicate (int &a, int &b, int &c)stream
{ a*=2; b*=2; c*=2; }rsa
int main ()
{ int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0; }
该函数将实参 x=1, y=3, z=7经过reference方式分别传递给形参a, b, c ,当a, b, c 在函数体内加倍时,实参也相应的发生变化,所以最后输出结果会变成
x=2, y=6, z=14
引入reference方法的缘由
调用函数直接赋值等同于形参复制了实参的值,这种方法对于一长串字符来讲显得过于低效,所以能够经过reference方法来赋值,reference方法不是单纯的复制,所以能够大大的提升函数调用的效率,而这种方法仍然存在一个问题,即在调用函数时并不但愿参数发生变化,而这能够经过const 关键字来保证,即在函数定义时,在函数的参数前加一个const关键字,例如
string concatenate (const string& a, const string& b) { return a+b; }
这样定义的参数就不容许发生变化,同时采用reference方法来赋值以提升函数调用的效率。
inline 提升短小函数的调用效率
当一个函数体较小时,采用常规的函数调用方法会浪费资源,能够经过inline来提升函数的使用效率,即在函数体的定义前加inline,这样表示该函数在主函数中调用时不是遵循普通函数的call调用方法,而是直接将函数插入到主函数须要引用的地方,这样提升了函数的使用效率。