作者easterday (....)
看板C_and_CPP
標題[問題] ACM10018與運算子重載
時間Tue Sep 11 14:35:28 2012
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
none
問題(Question):
http://www.csie.ntu.edu.tw/~b98902115/uva/homework/homework/q10018.htm
這題其實算簡單題,
只是我想修正我的程式碼"風格",多多採用C++ Primer書中的建議
讓我的程式碼比較漂亮一點
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/AzK3X
上面這是第一次解的程式碼,用了很多個new,然後很雜亂
經過修正以後以下是有C++ style的程式碼
http://ideone.com/8xV73
我現在的疑問在
BigInt operator+(const BigInt& lhs,const BigInt& rhs)
{
// BigInt* ret= (&lhs)->add(&rhs);
// return (*ret);
//////////////////////////////////////
...}
這個函式的宣告是照著C++ Primer 中文版518頁的建議寫的,應該是沒有什麼問題才是...
但是如果我想應用舊版本的BigInt::add()函式,編譯器都會噴C2662的compile error
有沒有什麼好辦法可以避開C2662?
問題好像有點長...感恩各位..
補充說明(Supplement):
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.81.121
→ shadow0326:add不是const func,const BigInt不能呼叫它 09/11 14:48
→ tobygameac:1.BigInt* add(const BigInt* that) const; 09/11 15:06
→ tobygameac:2.BigInt operator+(BigInt& lhs, BigInt& rhs) 09/11 15:06