[問題] 關於繼承後的constructor

看板Programming作者 (JstMonika)時間4年前 (2020/05/15 03:22), 編輯推噓2(2014)
留言16則, 3人參與, 4年前最新討論串1/1
各位好 我目前寫了一個class.h與.cpp function.h https://www.codepile.net/pile/b5pjo49B function.cpp https://www.codepile.net/pile/Gv6oj1VA compile時遇到問題,錯誤訊息是寫 function.cpp:28:25: error: no matching function for call to 'oj::Cuboid::Cuboid()' Cube::Cube(double length) 如果加上initialize list就正常了 但是我不太懂為什麼 請問可以幫我解答嗎 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.6.190 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1589484151.A.3F1.html

05/15 10:32, 4年前 , 1F
繼承的情況,子類要怎樣init 裡面父
05/15 10:32, 1F

05/15 10:32, 4年前 , 2F
的部份?沒特別告知的話就會當成用父
05/15 10:32, 2F

05/15 10:32, 4年前 , 3F
類的 no arg constructor. 因為你父
05/15 10:32, 3F

05/15 10:32, 4年前 , 4F
類沒no arg Ctor 所以出錯了。解決方
05/15 10:32, 4F

05/15 10:32, 4年前 , 5F
法如你所說在init list 用適當的父類c
05/15 10:32, 5F

05/15 10:32, 4年前 , 6F
tor就行
05/15 10:32, 6F

05/15 12:56, 4年前 , 7F
我想請問,Cone或Sphere這些也是繼承3DSha
05/15 12:56, 7F

05/15 12:56, 4年前 , 8F
pe來的,怎麼不會有call 3Dshape default
05/15 12:56, 8F

05/15 12:56, 4年前 , 9F
constructor然後error的問題呢
05/15 12:56, 9F

05/15 12:58, 4年前 , 10F
可能我問題不是描述的很好,抱歉
05/15 12:58, 10F

05/22 23:54, 4年前 , 11F
Shape
05/22 23:54, 11F

05/23 00:01, 4年前 , 12F
Shape3D你沒有特別指定constructor
05/23 00:01, 12F

05/23 00:01, 4年前 , 13F
所以就是Shape3D() 無參數的
05/23 00:01, 13F

05/23 00:01, 4年前 , 14F
子類繼承以後沒有特別指定他就會呼
05/23 00:01, 14F

05/23 00:01, 4年前 , 15F
叫default的父類constructor 所以跟
05/23 00:01, 15F

05/23 00:01, 4年前 , 16F
Shape3D是可以match到的
05/23 00:01, 16F
文章代碼(AID): #1UlPftFn (Programming)
文章代碼(AID): #1UlPftFn (Programming)