C++返回引用類型
A& a(){ return *this;} 就生成了一個固定地址的指針,并把指針帶給你
但A a() { return *this;}會生成一個臨時對象變量,并把這個臨時變量給你
這樣就多了一步操作
當返回一個變量時,會產生拷貝。當返回一個引用時,不會發生拷貝,你可以將引用看作是一個變量的別名,就是其他的名字,引用和被引用的變量其實是一個東西,只是有了兩個名字而已。
問題的關鍵是,當你想要返回一個引用而不是一個拷貝時,你要確保這個引用的有效性,比如:
int & fun() { int a; a=10; return a; }
這樣是不行的,因為a會在fun退出時被銷毀,這時返回的a的引用是無效的。
這種情況下,如果fun的返回類型不是int & 而是int就沒有問題了。
指針的引用
GetNearestFontInTwips(CFont *&aFont, const TFontSpec &aFontSpec);
第一個參數aFont是一個指針, 前面加上*&表示指針的引用, 其實可以如下看待這個方式(CFont*) &aFont, 這就一目了然了.