作者Billeve (瑞树啊瑞树)
看板C_and_CPP
标题[问题] 父类别指标指向子类别
时间Sat Jun 30 17:09:28 2018
如题,
在物件导向中,
父类物件的指标应该可以指向子类物件
但是今天在实作的时候一直出现例外状况
但是也找不到任何原因
想请问一下可能造成这样错误的原因
由於程式码很多很杂在这里就不附上了
出现错误的操作大概是这样
父物件 a , 子物件 b
a** list = new a*[3];
list[0] = new b;
感谢
-----
Sent from JPTT on my Samsung SM-J510UN.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.9.37.212
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1530349770.A.BA2.html
1F:嘘 Raymond0710: ... 没程式码当我们有水晶球?06/30 17:13
※ 编辑: Billeve (39.9.37.212), 06/30/2018 17:23:02
2F:推 steve1012: 写一个最小重现bug的程式是debug的基本之一 练习一下吧 06/30 17:28
3F:→ loveflames: 父子大小不同,用阵列方式操作会有问题 06/30 17:34
4F:→ sarafciel: list[0] = new b;<=应该要这样写吧 06/30 17:45
啊啊 打错QQ 修一下
5F:→ sarafciel: 然後请不要把class取这种跟变数名称很像的名字XD 06/30 17:48
6F:→ loveflames: 直觉上像是他想用父类别阵列的方式操作子类实体 06/30 17:56
我是希望使用父类指标阵列来对多个不同的子物件操作
※ 编辑: Billeve (39.9.37.212), 06/30/2018 18:03:50
※ 编辑: Billeve (39.9.37.212), 06/30/2018 18:04:13
※ 编辑: Billeve (39.9.37.212), 06/30/2018 18:06:53
7F:→ tinlans: 你好歹把 class 的轮廓贴出来 06/30 18:14
8F:→ sarafciel: 这两行常态下是合法的 原PO先像steve讲的写一段最小重 06/30 18:25
9F:→ sarafciel: 现的code再贴来看看吧 06/30 18:25
後来发现原来不是这个操作有问题
而是连最一般的
b test;
这样一句纯粹的宣告
都会导致bad_array_new_length
我觉得应该是整个物件有问题了
决定重写,感谢各位协助QQ
※ 编辑: Billeve (39.9.37.212), 06/30/2018 18:51:07