Re: [問題] class呼叫成員函式

看板C_and_CPP作者 (我要加入劍道社!)時間14年前 (2011/12/21 20:44), 編輯推噓10(1006)
留言16則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《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

12/21 20:48, , 1F
tks!!
12/21 20:48, 1F

12/21 21:10, , 2F
好像還是不行 因為我是宣告"const" Complex
12/21 21:10, 2F

12/21 21:10, , 3F
所以一定要加const
12/21 21:10, 3F

12/21 21:11, , 4F
這樣會說"assignment of data-member "Complex::test
12/21 21:11, 4F

12/21 21:12, , 5F
in read-only structure
12/21 21:12, 5F

12/21 21:14, , 6F
why use const
12/21 21:14, 6F

12/21 21:15, , 7F
題目要求的 
12/21 21:15, 7F

12/21 21:17, , 8F
po一下題目
12/21 21:17, 8F

12/21 21:18, , 9F
12/21 21:18, 9F

12/21 21:25, , 10F
那就 return 一個新的 Complex 呀...
12/21 21:25, 10F

12/21 21:25, , 11F
這樣應該是要return一個新的Complex吧
12/21 21:25, 11F

12/21 21:26, , 12F
在一開始建構的時候做好兩份如何?
12/21 21:26, 12F

12/21 21:38, , 13F
可以了謝謝!
12/21 21:38, 13F

12/21 23:35, , 14F
例子的角度解答好像有問題?
12/21 23:35, 14F

12/23 14:50, , 15F
這樣連續 call member function 不是浪費很多空間?
12/23 14:50, 15F

12/23 21:15, , 16F
這就要看編譯器最佳化的能力囉
12/23 21:15, 16F
文章代碼(AID): #1EyTIXJ6 (C_and_CPP)
文章代碼(AID): #1EyTIXJ6 (C_and_CPP)