課程
/后端開發
/C++
/C++遠征之封裝篇(下)
之前視頻中就是這樣寫啊,為什么這樣寫不對
2018-11-11
源自:C++遠征之封裝篇(下) 4-3
正在回答
前面題目幫你定義的是有參構造函數,你這里定義的是無參構造函數,系統不會自動定義無參構造函數,需要自己定義,系統找不到無參構造函數,所以報錯;解決辦法:你把參數寫進括號里,例如Coordinate(3,5),下面不要p->iX=3; 就會自動調用有參構造函數,或者把Coordinate()的括號去掉;
在括號里初始化數據成員怎么樣
我實在括號里初始化的
你這里面沒有傳參數,你的構造函數在初始化的時候需要傳入參數。
你在你的class里面寫一個默認構造函數就可以了,本身函數有帶參構造,你用的卻是默認的,而且沒寫上去,系統不會給你分配的,所以會報錯
Coordinate()里面應該有參數吧
例子中給了拷貝構造函數了,所以系統不會自動生成無參的拷貝構造函數,你自己得手動加上去應該就好了。
你的Coordinate類的定義呢?貼出來看看。這樣寫確實沒問題,前提是Coordinate類有默認的構造函數。
可能是由于Coordinate類的構造函數不是構造函數導致的。
慕UI610320
南橘xx 提問者 回復 慕UI610320
舉報
封裝--面向對象三大特征之一,通過案例讓C++所學知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-07-01
前面題目幫你定義的是有參構造函數,你這里定義的是無參構造函數,系統不會自動定義無參構造函數,需要自己定義,系統找不到無參構造函數,所以報錯;解決辦法:你把參數寫進括號里,例如Coordinate(3,5),下面不要p->iX=3; 就會自動調用有參構造函數,或者把Coordinate()的括號去掉;
2019-05-23
在括號里初始化數據成員怎么樣
我實在括號里初始化的
2019-04-07
你這里面沒有傳參數,你的構造函數在初始化的時候需要傳入參數。
2019-03-01
你在你的class里面寫一個默認構造函數就可以了,本身函數有帶參構造,你用的卻是默認的,而且沒寫上去,系統不會給你分配的,所以會報錯
2018-12-31
Coordinate()里面應該有參數吧
2018-11-15
例子中給了拷貝構造函數了,所以系統不會自動生成無參的拷貝構造函數,你自己得手動加上去應該就好了。
2018-11-15
你的Coordinate類的定義呢?貼出來看看。這樣寫確實沒問題,前提是Coordinate類有默認的構造函數。
2018-11-11
可能是由于Coordinate類的構造函數不是構造函數導致的。