前兩天在寫學生資訊管理系統的時候,翻閱教材發現有return *this 的用法。就仔細的看了下。
是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器
會自動將物件本身的位址作為乙個隱含引數傳遞
給函式。
所以說呢,this指標其實就是個隱含的指標,他是時時刻刻存在的,指向著物件本身,表示當前物件的位址;當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,會**使用this指標。當然也可以使用*this來表示呼叫該成員函式的物件。
那麼,return *this的作用是什麼呢?
拿我之前學生管理系統例子來說吧,clist&表示將當前鍊錶物件本身傳遞回去,要是返回型別是clist的話,那返回的是乙個轉殖體。
#includeusing namespace std;
class time;
time::time(int h, int m, int s)
time::time(time &x)
time::~time()
time &time::clear_time()
time time::_clear_time()
int main()
執行結果:
由例子可知:函式呼叫時,會隱含的傳遞this指標,this指向當前物件。若函式型別為time&,則直接將物件本身返回,若函式型別為time,則需先複製,並呼叫建構函式,最後return的便是這個複製的物件,之後銷毀。
指標的指標的用法
直接上 用途 使用乙個函式動態申請記憶體,並賦值。跳出呼叫函式後輸出賦值內容 cpp include include typedef struct data data void fun data p int main void fun data p 我建議你直接執行看看結果,你會發現執行出錯,在這裡...
指標的用法
c 中,成員指標是最為複雜的語法結構。但在事件驅動和多執行緒應用中被廣泛用於呼叫回叫函式。在多執行緒應用中,每個執行緒都通過指向成員函式的指標來呼叫該函式。在這樣的應用中,如果不用成員指標,程式設計是非常困難的。剛遇到這種語法時也許會讓你止步不前。但你會發現,使用恰當的型別定義之後,複雜的語法是可以...
this指標的用法
1.this指標的用處 乙個物件的this指標並不是物件本身的一部分,不會影響sizeof 物件 的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加...