c++函数名后面加&什么意思,比如说void func&(Figure &p)

c++函数名后面加&什么意思,比如说void func&(Figure &p)。Figure是一个类,func是定义在类外的一个函数,不是Figure类的成员函数。

&是保留符号不能使用在变量名和函数名

int b;

int & a = b;

此时a 引用 b,它类似于指针,但是a并没有存储单元

void abc(int & a);

当作为参数时,如果你在函数内修改 a 的值,那么实参也会改变

void abc(const int &a);

当然,你只需要在前面声明它在该函数为只读时就不能修改了

通常引用是用来优化传参的,毕竟它传递时不会复制一份实参

你可能会发现有这样一种写法

int main()
{
    int && a= CreateObject(1,2);
    return 0;
}//a生存期结束

这叫右值引用,它用来延长返回值的生存期

我们都知道 当返回的时候将会复制2次

第一次返回值复制给临时值,然后再复制给接收的值

如果使用了右值引用,那么就能直接使用临时值,而不需要二次复制

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-05
没这种语法吧
相似回答