推 littleshan:因為你寫了 A 的copy ctor而且裡面沒有對b做處理 11/01 23:55
→ james732:你的程式碼甚至不會做member-wise的copy 11/01 23:56
喔 我懂了 本來不寫A的copy constructor 就會call B的 copy constructor
寫了之後compiler不提供預設的member-wise的copy 所以不做了這樣 謝謝兩位:)
※ 編輯: k0783154 來自: 220.136.36.43 (11/02 00:03)
→ james732:確實,既然你有提供自己的constructor,你寫了什麼就只會 11/02 00:06
→ james732:做什麼,沒寫的事情就不會做 11/02 00:06
→ legnaleurc:其實那也不是 assign 的動作就是了 ... 11/02 03:36
→ purincess:對阿 A a2 = a1; 其實是A a2(a1);... 11/02 03:44
→ purincess:如果真的是assign的話被叫的應該是A& operator=(A&); 11/02 03:45
→ purincess:上面好像少寫const XD 11/02 03:45
→ angleevil:如果沒寫assign,編譯器會隱式轉換copy ctor. 11/03 16:47
→ angleevil:再來就是B沒寫copy ctor.所以編譯器會幫你預設一個 11/03 16:48
→ angleevil:copy ctor. 但是如果裡面有指標的話. 嘖嘖.你創造陷阱 11/03 16:49
→ angleevil:給自己 11/03 16:49