[問題] 有關於 *this 用法
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
devc++ ,VC2010
問題(Question):
*this 這邊很沒feeling 感受不到這斷程式的意義
回傳*this 傳的是什麼內容
沒有*<==只回傳this 是什麼情形
沒有&<==又是什麼情形
程式碼(Code):(請善用置底文網頁, 記得排版)
如 primer p441 頁返回*this用法
在440頁有提到使用時機,當指向整個物件的時候,最常見的情況便是
函式返回其呼叫者的 reference
然後再p441
typedef std::string::size_type index;
class Screen{
public:
Screen& move(index r,index c);
Screen& set(char);
Screen& set(index,index,char);
};
Screen& Screen::set(char c){
contents[cursor]=c;
return *this;
}
Screen& Screen::move(index r,index c){
index row = r*width;
cursor = row +c;
return *this;
}
補充: 在此我解釋一下我知道的地方
this 為指向class物件,當加上指標"*"時表示回傳instance
回傳後進行物件參造
我不懂 1. 指向哪個物件 以move(index r,index c)為例 是cursor ?
2. 跟涵式內的code跟this又有什麼關聯性 ?
在此先謝謝各位指點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.125.21.48
→
02/15 11:55, , 1F
02/15 11:55, 1F
→
02/15 11:56, , 2F
02/15 11:56, 2F
→
02/15 13:20, , 3F
02/15 13:20, 3F
→
02/15 13:21, , 4F
02/15 13:21, 4F
→
02/15 13:23, , 5F
02/15 13:23, 5F
→
02/15 15:14, , 6F
02/15 15:14, 6F
→
02/15 15:16, , 7F
02/15 15:16, 7F
→
02/15 15:18, , 8F
02/15 15:18, 8F
※ 編輯: wasidada 來自: 140.125.21.48 (02/15 17:27)
→
02/15 17:28, , 9F
02/15 17:28, 9F
※ 編輯: wasidada 來自: 140.125.21.48 (02/15 17:30)
→
02/15 17:33, , 10F
02/15 17:33, 10F
→
02/15 17:50, , 11F
02/15 17:50, 11F
→
02/15 18:52, , 12F
02/15 18:52, 12F
→
02/15 18:52, , 13F
02/15 18:52, 13F
→
02/15 19:00, , 14F
02/15 19:00, 14F
→
02/15 19:01, , 15F
02/15 19:01, 15F
→
02/15 19:03, , 16F
02/15 19:03, 16F
→
02/15 19:16, , 17F
02/15 19:16, 17F
→
02/15 19:23, , 18F
02/15 19:23, 18F
→
02/15 19:25, , 19F
02/15 19:25, 19F