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

看板C_and_CPP (C/C++)作者 (哈姆妍)時間8年前 (2018/04/01 20:34), 8年前編輯推噓0(009)
留言9則, 4人參與, 8年前最新討論串1/1
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://www.ptt.cc/bbs/C_and_CPP/M.1522586048.A.F96.html

04/01 20:43, 8年前 , 1F
因為你根本沒有替this->coeff分配空間,改名後可以是
04/01 20:43, 1F

04/01 20:43, 8年前 , 2F
因為變成替this->coeff分配空間
04/01 20:43, 2F

04/01 20:45, 8年前 , 3F
this->size已經分配int所以正常
04/01 20:45, 3F
啊 我懂了 是因為要這樣寫的話new那一行也要用this指定嗎 原來是眼殘Orz 謝謝l大~

04/01 21:24, 8年前 , 4F
你的分類是什麼鬼 XD
04/01 21:24, 4F
愚人節彩蛋XDD ※ 編輯: Brothre23 (175.182.203.190), 04/01/2018 21:26:26

04/02 00:07, 8年前 , 5F
為什麼用不同名稱就會變成幫this -> cofee 命名啊?
04/02 00:07, 5F

04/02 00:08, 8年前 , 6F
打錯 coeff
04/02 00:08, 6F

04/03 09:37, 8年前 , 7F
回樓上,按照這段程式碼,編譯器會幫外部參數的coeff分
04/03 09:37, 7F

04/03 09:38, 8年前 , 8F
配空間,而不會幫class內的coeff分配空間
04/03 09:38, 8F

04/03 09:39, 8年前 , 9F
第13行改成this->coeff = new double[size]就正確了
04/03 09:39, 9F
文章代碼(AID): #1QmD70-M (C_and_CPP)
文章代碼(AID): #1QmD70-M (C_and_CPP)