作者Brothre23 (哈姆妍)
看板C_and_CPP
標題[肥宅] 同名參數傳進constructor時使用this區分
時間Sun Apr 1 20:34:02 2018
https://pastebin.com/M7AMMKmd
(code全貼太多了 只貼有問題的部分)
我設計了一個叫做Polynomial的class來進行多項式操作
係數是存在coeff這個array裡 index拿來當指數
然後有一個constructor的參數是外部另一個存係數的array和它的長度
結果執行到第15行的時候會segmentation fault
我原本以為是this指標有問題 結果只要把外部參數隨便改名
不要叫coeff就好 比方this->coeff[i] = test[i];就能正常跑了= =
可是下面那行的this->size = size也沒有問題啊QQ
拜託各位指點迷津m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.203.190
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1522586048.A.F96.html
1F:→ loveflames: 因為你根本沒有替this->coeff分配空間,改名後可以是 04/01 20:43
2F:→ loveflames: 因為變成替this->coeff分配空間 04/01 20:43
3F:→ loveflames: this->size已經分配int所以正常 04/01 20:45
啊 我懂了 是因為要這樣寫的話new那一行也要用this指定嗎
原來是眼殘Orz 謝謝l大~
4F:→ james732: 你的分類是什麼鬼 XD 04/01 21:24
愚人節彩蛋XDD
※ 編輯: Brothre23 (175.182.203.190), 04/01/2018 21:26:26
5F:→ hohamita: 為什麼用不同名稱就會變成幫this -> cofee 命名啊? 04/02 00:07
6F:→ hohamita: 打錯 coeff 04/02 00:08
7F:→ joe820730: 回樓上,按照這段程式碼,編譯器會幫外部參數的coeff分 04/03 09:37
8F:→ joe820730: 配空間,而不會幫class內的coeff分配空間 04/03 09:38
9F:→ joe820730: 第13行改成this->coeff = new double[size]就正確了 04/03 09:39