推 loveflames: Arr<T1> operator+會造成slicing 03/18 17:18
→ loveflames: 然後沒有虛函數不能用dynamic_cast向下轉型 03/18 17:19
推 loveflames: operator+必須設計成值返回,看你要不要在子類重寫一 03/18 17:22
→ loveflames: 個 03/18 17:22
推 loveflames: 啊,上面講的是寫一個子類版的operator+,不是寫在子 03/18 17:37
→ loveflames: 類裡面 03/18 17:37
多寫一個
Arr_int operator+(Arr_int const &lhs, Arr_int const &rhs){
return Arr_int(lhs) += rhs;
}
會出現錯誤呢~QuQ 這什麼意思
inhereit.hpp: In function 'Arr_int operator+(const Arr_int&, const Arr_int&)':
inhereit.hpp:56:25: error: could not convert 'Arr_int((* &
lhs)).Arr_int::<anonymous>.Arr<T>::operator+=<int>((&
rhs)->Arr_int::<anonymous>)' from 'Arr<int>' to 'Arr_int'
return Arr_int(lhs) += rhs;
~~~~~~~~~~~~~^~~~~~
※ 編輯: hunandy14 (218.166.134.30), 03/18/2017 18:09:01
推 loveflames: operator+=返回型態是父類的參考 03/18 19:01
推 loveflames: 有空參考exceptional c++ item 20 03/18 19:51
→ loveflames: 這會是你要的 03/18 19:51
好的~
※ 編輯: hunandy14 (218.166.134.30), 03/19/2017 12:41:36