左值:可以取地址的對(duì)象(比如:變量名榴徐、解引用的指針變量)
右值:不可以取地址的對(duì)象(右值也是一個(gè)表示數(shù)據(jù)的表達(dá)式守问,比如:字面常量、表達(dá)式返回值坑资,傳值返回函數(shù)的返回值)
左值引用就是對(duì)左值的引用酪碘,給左值取別名。主要作用是避免對(duì)象拷貝盐茎。
// 以下幾個(gè)是對(duì)上面左值的左值引用
int& ra = a;
int*& rp = p;
int& r = *p;
const int& rb = b;
右值引用就是對(duì)右值的引用兴垦,給右值取別名。主要作用是把延長對(duì)象的生命周期,一般是延長到作用域的scope之外探越。
右值引用的表示是在具體的變量類型名稱后加兩個(gè) &狡赐,比如:int&& rr = 4;。
// 以下幾個(gè)是對(duì)上面右值的右值引用
int&& rr1 = 10;
double&& rr2 = x + y;
double&& rr3 = fmin(x, y);
char getData() const{
return this->letter;
}
c++ 函數(shù)前面和后面 使用const 的作用:
前面使用const 表示返回值為const
后面加 const表示函數(shù)不可以修改class的成員