Re: [問題] function的{前加上:跟其他東西是甚麼意思

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2010/02/03 01:12), 編輯推噓1(1013)
留言14則, 6人參與, 最新討論串2/3 (看更多)
借標題問一下 看過有人寫copy constructor 寫成 A( A &rhs){*this = rhs;} 前提是我寫了一個operator= 這樣寫有沒有什麼錯誤或是不該這樣?? 就我看...copy constructor和operator= 行為根本一樣的樣子 可以這樣寫 交給operator=去做嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.136.61

02/03 01:39, , 1F
不是好習慣。在ctor中,virtual func ptr table 還沒
02/03 01:39, 1F

02/03 01:39, , 2F
建立好,萬一 operator = 有涉及 overriding就出問題了
02/03 01:39, 2F

02/03 01:40, , 3F
上網找找也會找到不同原因要避免在ctor invoke methods
02/03 01:40, 3F

02/03 01:40, , 4F
做 initialization
02/03 01:40, 4F

02/03 01:43, , 5F
通常應該是要反過來才正常。
02/03 01:43, 5F

02/03 02:13, , 6F
樓上:什麼反過來?
02/03 02:13, 6F

02/03 02:34, , 7F
在op=裡面直接用copy ctor
02/03 02:34, 7F

02/03 02:39, , 8F
印象中 在op=裡面似乎直接用 copy ctor 比較熟悉
02/03 02:39, 8F

02/03 08:28, , 9F
@@ operator裡面可以呼叫copy constructor?
02/03 08:28, 9F

02/03 08:31, , 10F
我怎麼寫都會compile error耶 要怎麼實作呢?
02/03 08:31, 10F

02/03 09:43, , 11F
做 exception safe 的時候才會用到。先用 copy ctor 造一
02/03 09:43, 11F

02/03 09:43, , 12F
個 temp,再 swap 進去。
02/03 09:43, 12F

02/03 12:57, , 13F
是 opt = ( A &rhs){A temp(rhs)? 再來怎麼swap呢@@}
02/03 12:57, 13F

02/04 22:58, , 14F
記得effective c++有看到
02/04 22:58, 14F
文章代碼(AID): #1BQ5qDno (C_and_CPP)
文章代碼(AID): #1BQ5qDno (C_and_CPP)