[肥宅] 同名参数传进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