函数类型和参数类型

来源:互联网 发布:中国对外文化贸易数据 编辑:程序博客网 时间:2024/05/17 20:28
//1、参数(所有实例默认在函数返回值为int类型,即返回类型为一个值)

//(1)、传值参数:实参要复制一份传值给形参(形参的改变对实参没有影响),复制过程是由形参类型的复制构造函数来完成。函数运行结束时,形参类型的析构函数负责

//释放形式参数。

int abc(int x,int y,int z)
{
    return x+y+z;
}


//(2)、引用参数:不需要建立形参,实参直接传入参与函数,节省了时间和空间,即当函数被调用时,这个程序没有复制实参的值,在函数返回时也没有调用析构函数。
template<class T>
T abc(T& a,T& b,T& c)
{
    return a+b+c;
}


//(3)、常量引用参数:与引用参数类似,只是函数不会改变传入的参数的值
template<class T>
T abc(const T& a,const T& b,const T& c)
{
    return a+b+c;
}


//2、函数
//(1)、返回值为一个值:上述例子都属于这种情况,特点是释放临时变量、局部变量(以及传值参数)之前,要把这个值从临时变量复制到调用该函数
//的坏境中


//(2)、返回值为一个引用变量,则函数结束时直接释放形参a以及所有局部变量的空间都被释放,b是实参的引用所以不受影响,这种返回形式不会把b的值复制到返回坏境中。
template<class T>
T& aaa(int a,T& b)
{
    return b;
}
//(3)、返回值为常量引用:必须将值赋给const常量
template<class T>
const T& bbb(int i,const T& z)
{
    return z;
}
0 0
原创粉丝点击