[肥宅] 同名參數傳進constructor時使用this區分

作者: Brothre23 (哈姆妍)   2018-04-01 20:34:02
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
作者: loveflames (咕啾咕啾魔法陣)   2018-04-01 20:43:00
因為你根本沒有替this->coeff分配空間,改名後可以是因為變成替this->coeff分配空間this->size已經分配int所以正常
作者: james732 (好人超)   2018-04-01 21:24:00
你的分類是什麼鬼 XD
作者: hohamita (HOHA)   2018-04-02 00:07:00
為什麼用不同名稱就會變成幫this -> cofee 命名啊?打錯 coeff
作者: joe820730 (Let it go)   2018-04-03 09:37:00
回樓上,按照這段程式碼,編譯器會幫外部參數的coeff分配空間,而不會幫class內的coeff分配空間第13行改成this->coeff = new double[size]就正確了

Links booklink

Contact Us: admin [ a t ] ucptt.com