看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《FableKevinS (FableKevinS)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : c++ : 問題(Question): : 我有一個class Complex (就是複數, 有real跟imag在private裡) : 其中有兩個member func : void showXY()const{...cout << real << "+" << imag << "i";...} : void conj()const{ : this->b=b*-1 //共厄複數 : } 應該是 this->imag = -imag; 才對吧 不過你改了 member 的內容 conj() 後面不應該有 const : 然後宣告 const Complex test( 1 , 0.5 ) : 並呼叫test.conj().showXY(); 如果你要這樣寫 conj() 必需這樣: Complex& conj() { this->imag = -imag; return *this; } 傳回物件自己,這樣後面才能接 showXY() : 預期的正確結果(Expected Output): : 1-0.5i : 錯誤結果(Wrong Output): : compile不會過 會說invalid use of void -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.93.206
FableKevinS:tks!! 12/21 20:48
FableKevinS:好像還是不行 因為我是宣告"const" Complex 12/21 21:10
FableKevinS:所以一定要加const 12/21 21:10
FableKevinS:這樣會說"assignment of data-member "Complex::test 12/21 21:11
FableKevinS:in read-only structure 12/21 21:12
elfkiller:why use const 12/21 21:14
FableKevinS:題目要求的  12/21 21:15
elfkiller:po一下題目 12/21 21:17
FableKevinS:http://codepad.org/lw8uBQo2 line10 12/21 21:18
bibo9901:那就 return 一個新的 Complex 呀... 12/21 21:25
PkmX:這樣應該是要return一個新的Complex吧 12/21 21:25
elfkiller:在一開始建構的時候做好兩份如何? 12/21 21:26
FableKevinS:可以了謝謝! 12/21 21:38
asilzheng:例子的角度解答好像有問題? 12/21 23:35
WJAider:這樣連續 call member function 不是浪費很多空間? 12/23 14:50
PkmX:這就要看編譯器最佳化的能力囉 12/23 21:15