[問題] 繼承後 opretor+ 型別轉換問題
參考代碼:https://goo.gl/jxbkwE
我建了一個 template Arr 的類別目的要集合 +- 運算的代碼寫在同一處
父類別(operator寫在這裡)
Arr<int> a{0, 1, 2};
子類別
Arr_int b{0, 1, 2};
當我使用 b=b+b;
的時候因為 b+b 返還的類別是 Arr 造成了
Arr_int = Arr; 的窘況,然後就找不到那個運算子了
這能怎麼處理~
我有試著將他向下轉換不行呢QuQ 為什麼
b = dynamic_cast<Arr_int>(b+b);
有什麼比較好的作法嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.134.30
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1489827345.A.FB2.html
推
03/18 17:18, , 1F
03/18 17:18, 1F
→
03/18 17:19, , 2F
03/18 17:19, 2F
推
03/18 17:22, , 3F
03/18 17:22, 3F
→
03/18 17:22, , 4F
03/18 17:22, 4F
推
03/18 17:37, , 5F
03/18 17:37, 5F
→
03/18 17:37, , 6F
03/18 17:37, 6F
多寫一個
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
推
03/18 19:01, , 7F
03/18 19:01, 7F
推
03/18 19:51, , 8F
03/18 19:51, 8F
→
03/18 19:51, , 9F
03/18 19:51, 9F
好的~
※ 編輯: hunandy14 (218.166.134.30), 03/19/2017 12:41:36
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):