第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

定義Line的構(gòu)造函數(shù)時(shí),為什么不可以寫成如下形式呢?(編譯error C2512: “Coordinate”: 沒有合適的默認(rèn)構(gòu)造函數(shù)可用)


Line::Line(int x1,int y1,int x2,int y2)

{

m_coorA.setX(x1);

m_coorA.setY(y1);

m_coorB.setX(x2);

m_coorB.setY(y2);

cout<<"Line()"<<endl;

}


正在回答

3 回答

實(shí)例化Line對象時(shí),先實(shí)例化Coordinate對象點(diǎn)A和點(diǎn)B,實(shí)例化點(diǎn)A和點(diǎn)B時(shí),會自動調(diào)用構(gòu)造函數(shù),程序中如果只有構(gòu)造函數(shù)Coordinate(int x,int y)時(shí),調(diào)用時(shí)必須傳遞參數(shù),否則會報(bào)錯(cuò)。但如果加上默認(rèn)構(gòu)造函數(shù)Coordinate()時(shí),沒有參數(shù)傳遞時(shí)就會調(diào)用Coordinate()這個(gè)函數(shù),就不會報(bào)錯(cuò)了。

5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕的地8223948 提問者

非常感謝!
2017-12-11 回復(fù) 有任何疑惑可以回復(fù)我~
#2

路卍飛 回復(fù) 慕的地8223948 提問者

不客氣!大家一起學(xué)習(xí)一起進(jìn)步!加油!
2017-12-11 回復(fù) 有任何疑惑可以回復(fù)我~

m_coorA沒有實(shí)例化怎么就直接給m_coorA的屬性賦值了?

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕的地8223948 提問者

啊,明白了
2017-12-11 回復(fù) 有任何疑惑可以回復(fù)我~

兩種方法可以解決:①“把Line::Line(int x1,int y1,int x2,int y2)”后面接一句“:m_coorA(x1,y1),m_coorB(x2,y2)”; ②在Coordinate.h加一句“Coordinate();”,在Coordinate.cpp中加“Coordinate::Coordinate(){
?cout << "Coordinate()" << endl;}”,都可以運(yùn)行。原因是,程序中只有有參構(gòu)造函數(shù)Coordinate(int x,int y),不傳遞參數(shù)會出錯(cuò),可以寫一個(gè)無參構(gòu)造函數(shù),這樣你的程序就能運(yùn)行了。


3 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C++遠(yuǎn)征之封裝篇(下)
  • 參與學(xué)習(xí)       70903    人
  • 解答問題       534    個(gè)

封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學(xué)知識融會貫通

進(jìn)入課程

定義Line的構(gòu)造函數(shù)時(shí),為什么不可以寫成如下形式呢?(編譯error C2512: “Coordinate”: 沒有合適的默認(rèn)構(gòu)造函數(shù)可用)

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號