C++之返回值為reference引用的情況---補充(6)《Effective C++》
阿新 • • 發佈:2019-02-08
上篇部落格中我們講了返回一個reference物件可能會出錯或者效率特別低,那有沒有比較適合返回reference引用的情況呢?下面我們就來總結一下型別:
1)函式返回值用引用,引數傳遞進去也用引用:
int& hel(int& t){
return t;
}
2)函式返回值用引用,引數傳遞用指標
int& hel(int *t){
return *t;
}
3)返回函式內部的資料:
- copy assignment運算子
class A{
public:
A(int xx) :x(xx){
}
A(){
}
int getX() const{
return x;
};
void show(){
cout << x << endl;
}
A(const A&a){
this->x = a.x;
}
A& operator=(const A& a){
this->x = a.x;
return *this;
}
private:
int x;
};
- 內部資料
class Point{
public:
Point(int x,int y);
...
void setX(int newVal);
void setY(int newVal);
...
};
struct RectData{
Point ulhc;
Point lrhc;
};
class Rectangle{
public:
...
Point& upperLeft()const
{
return pData->ulhc;
}
Point& lowerRight()const{
return pData->lrhc;
}
private:
Rectangle pData;
};