看板 C_and_CPP 關於我們 聯絡資訊
如題, 在物件導向中, 父類物件的指標應該可以指向子類物件 但是今天在實作的時候一直出現例外狀況 但是也找不到任何原因 想請問一下可能造成這樣錯誤的原因 由於程式碼很多很雜在這裡就不附上了 出現錯誤的操作大概是這樣 父物件 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://www.ptt.cc/bbs/C_and_CPP/M.1530349770.A.BA2.html
Raymond0710: ... 沒程式碼當我們有水晶球?06/30 17:13
※ 編輯: Billeve (39.9.37.212), 06/30/2018 17:23:02
steve1012: 寫一個最小重現bug的程式是debug的基本之一 練習一下吧 06/30 17:28
loveflames: 父子大小不同,用陣列方式操作會有問題 06/30 17:34
sarafciel: list[0] = new b;<=應該要這樣寫吧 06/30 17:45
啊啊 打錯QQ 修一下
sarafciel: 然後請不要把class取這種跟變數名稱很像的名字XD 06/30 17:48
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
tinlans: 你好歹把 class 的輪廓貼出來 06/30 18:14
sarafciel: 這兩行常態下是合法的 原PO先像steve講的寫一段最小重 06/30 18:25
sarafciel: 現的code再貼來看看吧 06/30 18:25
後來發現原來不是這個操作有問題 而是連最一般的 b test; 這樣一句純粹的宣告 都會導致bad_array_new_length 我覺得應該是整個物件有問題了 決定重寫,感謝各位協助QQ ※ 編輯: Billeve (39.9.37.212), 06/30/2018 18:51:07