[問題] reference 問題

看板C_and_CPP (C/C++)作者 (MAI舞)時間16年前 (2009/09/15 21:13), 編輯推噓8(8014)
留言22則, 5人參與, 最新討論串1/5 (看更多)
有個class 的 constructor 為: wxWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0; const wxString& name = wxT("panel")); 產生一個instance就: wxWindow* win = new wxWindow(parent,wxID_ANY, wxPoint(100, 100), wxSize(200, 200)); 想問的是,『wxPoint(100, 100)』這樣寫就會有物件產生嗎?否則怎麼被 const wxPoint& pos 給 reference? 請各位大大給予指點了 (觀念不夠清楚orz/// -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.71.110 ※ 編輯: kevintwo 來自: 140.113.71.110 (09/15 21:32)

09/15 21:36, , 1F
暫時物件
09/15 21:36, 1F
再請問一下,下面的是錯在哪呢? (1) const string& ref2 = string("hala"); (2) const vector<int>& ref = vector<int>(); ※ 編輯: kevintwo 來自: 140.113.71.110 (09/15 22:13)

09/15 22:27, , 2F
是我搞錯了,沒有問題
09/15 22:27, 2F

09/15 22:27, , 3F
把warning 誤為error
09/15 22:27, 3F

09/15 22:28, , 4F
謝謝d大了
09/15 22:28, 4F

09/15 22:29, , 5F
最好不要忽略warning...@@a
09/15 22:29, 5F

09/15 22:36, , 6F
warning 是說我沒使用到這個變數,應該沒關係吧?
09/15 22:36, 6F

09/15 22:38, , 7F
有人可以解釋 直接傳暫時物件效率會比較高嘛??
09/15 22:38, 7F

09/15 22:39, , 8F
不然這樣寫有什麼好處呢@@"?
09/15 22:39, 8F

09/15 23:07, , 9F
樓上問了我也想問的問題了^^a
09/15 23:07, 9F

09/15 23:24, , 10F
不過我測試結果 class A; A a=A(); 和A a();一樣的意思..
09/15 23:24, 10F

09/15 23:25, , 11F
好像一樣 至於用ref 只是為了減少再copy而以嘛?
09/15 23:25, 11F

09/16 00:36, , 12F
A a=A() 並不會產生暫時物件... 編譯器很聰明的
09/16 00:36, 12F

09/16 00:41, , 13F
A a(); 是宣告一個 function...這邊很多人會弄錯
09/16 00:41, 13F

09/16 00:44, , 14F
const string& ref2 = string("hala"); 是錯誤用法
09/16 00:44, 14F

09/16 00:45, , 15F
因為暫時物件會馬上解構 所以你的 ref 會指向垃圾
09/16 00:45, 15F

09/16 00:59, , 16F
little大 不會耶 他不會馬上解構 我用VC8測的
09/16 00:59, 16F

09/16 01:01, , 17F
他好像和用這樣寫const string& ref2("hala");一樣...
09/16 01:01, 17F

09/16 01:01, , 18F
應該說是不知道哪時候解構 唯一確保的是只在該statemen
09/16 01:01, 18F

09/16 01:02, , 19F
t會在,
09/16 01:02, 19F

09/16 01:03, , 20F
但是如果寫const string& ref2("hala");有沒有加ref有差別嘛?
09/16 01:03, 20F

09/16 01:04, , 21F
那這樣原波文章 的寫法 他傳到函式用ref接的寫法是錯誤的嘛?
09/16 01:04, 21F

09/16 01:11, , 22F
我常常搞不懂reference的使用時機 orz
09/16 01:11, 22F
文章代碼(AID): #1AhvBvU2 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AhvBvU2 (C_and_CPP)