左值可被反复使用,例如变量a;右值使用后消亡,如值3。
float func(float &f) //左值引用
float func(float &&f) //右值引用
#include<iostream>
using namespace std;
static float global=1.111f;
void func(float &&f) //右值引用
{
global +=f;
}
float getFloat()
{
float f=2.222f;
return f;
}
void func(float &f) //左值引用
{
global-=f;
}
void main()
{
float u=4.000f;
cout<<"global:"<<global<<endl;
func(3.333f); //调用右值引用函数
cout<<"global:"<<global<<endl;
func(getFloat()+1.111);
cout<<"global:"<<global<<endl;
func(u); //调用左值引用函数
cout<<"global:"<<global<<endl;
}