[問題] Copy 建構式和 Assign operator

看板C_and_CPP (C/C++)作者 (Nicle)時間15年前 (2010/10/21 10:27), 編輯推噓1(108)
留言9則, 4人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 想建兩個 Class , 在宣告 它們的成員和 賦值運算時 會印出相對應的句子 部份程式如下: A a, a2(2); B b1,b2(a2); a = b1; b1 = b2; a = a2; 我的定義式: 在 Class A 裡 // Initialize constructor A(int count){... 印句子 ...} // copy constructor A( const A& other){...印句子...} // Assignment operator A& operator=(const A& other){...印句子...} 在 Class B 也是一樣 ( A 改成 B ) 希望得到的正確結果: 無法運行 程式跑出來的錯誤結果: 'A::operator=' : must return a value B 也是 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 2010 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 150.135.210.16

10/21 10:33, , 1F
我猜要加個 return *this; 之類的
10/21 10:33, 1F

10/21 10:33, , 2F
加在 A::operator= 裡面
10/21 10:33, 2F

10/21 10:52, , 3F
很好奇為什麼這邊 B b2(a2); 會過? 你的 B 有繼承 A ?
10/21 10:52, 3F

10/21 10:53, , 4F
上面打反, 是 A 繼承自 B
10/21 10:53, 4F

10/21 11:04, , 5F
是這樣嗎? class B: public A { .....}
10/21 11:04, 5F

10/21 11:06, , 6F
建議你貼更完整的程式碼上來,這樣很難看出什麼東西
10/21 11:06, 6F

10/21 13:43, , 7F
謝謝 各位 我的程式碼可以編譯了 :))
10/21 13:43, 7F

10/21 15:25, , 8F
能編譯不代表寫得正確阿...= __ =
10/21 15:25, 8F

10/21 20:45, , 9F
文章代碼(AID): #1ClwKKg0 (C_and_CPP)
文章代碼(AID): #1ClwKKg0 (C_and_CPP)