作者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/cn.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