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

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個在構(gòu)造函數(shù)里的那一部分有點不懂(問題在代碼上附著,真心求解)

#include <iostream>

using namespace std;

class Coordinate

{

? ??

public:

Coordinate(int x,int y)//這里也不能傳參數(shù)進去嗎?

{

? ?m_iX=x;//就是在這個地方,為什么不能在里面加這兩行

? ?m_iY=y;

}

// 打印坐標(biāo)的函數(shù)

void printInfo() ?

{

? ?cout<<"("<<m_iX<<","<<m_iY<<endl;

}

public:

int m_iX;

int m_iY;

};

int main(void)

{

//定義對象數(shù)組

? ? Coordinate coorArr[2];

? ? coorArr[0].m_iX=1;

? ? coorArr[0].m_iY=2;

? ? coorArr[1].m_iX=3;

? ? coorArr[1].m_iY=4;

//遍歷數(shù)組,打印對象信息

for(int i = 0; i < 2; i++)

{

coorArr[i].printInfo();

}

return 0;

}


正在回答

4 回答

Coordinate coorArr[2];這一句的意思是使用默認構(gòu)造函數(shù)(不含參數(shù)的)生成兩個對象。但類沒有構(gòu)造函數(shù)的時候系統(tǒng)會自動生成一個無參構(gòu)造函數(shù),也就是默認構(gòu)造函數(shù)。但是當(dāng)你自己定義了構(gòu)造函數(shù)了,系統(tǒng)就不會再給你自動生成構(gòu)造函數(shù)。你的類只有你定義了一個由參構(gòu)造函數(shù),所以你只能用你定義的那個有參函數(shù)去創(chuàng)建對象例如:Coordinate coor(1,2)這是棧中或Coordinate *co =new Coordinate(1,2)這是堆中。上面那句代碼需要調(diào)用無參構(gòu)造函數(shù),你沒有,所以會報錯創(chuàng)建不成功。你可以自己再加一個無參構(gòu)造函數(shù)就行了。

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

老有意思了 提問者

我在定義構(gòu)造函數(shù)的時候 Coordinate(int x=0,int y=0) 這樣也是可以的對吧
2019-07-26 回復(fù) 有任何疑惑可以回復(fù)我~

我贊同“我是塵風(fēng)呀”的回答,簡單來說,就是你自己在類中定義的構(gòu)造函數(shù)是有參數(shù)的,但是你在main函數(shù)中調(diào)用Coordinate類的時候并沒有給它參數(shù),例如:Coordinate coorArr(1, 2);執(zhí)行時可以通過的。? ? 所以,編譯器肯定會報錯。

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

Coordinate coorArr[2];

這一句應(yīng)該對應(yīng)默認構(gòu)造函數(shù)

Coordinate()

{

}

但是你的類里面沒有默認構(gòu)造函數(shù),

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

老有意思了 提問者

已經(jīng)明白了,謝謝了
2019-07-26 回復(fù) 有任何疑惑可以回復(fù)我~

含參構(gòu)造函數(shù)是沒有問題的,問題在于在堆上使用沒有默認構(gòu)造函數(shù)去開辟空間;

#include <iostream>

using namespace std;

class Coordinate

{

public:

Coordinate(int x, int y)

{

m_iX = x;

m_iY = y;

}

// 打印坐標(biāo)的函數(shù)

void printInfo()

{

cout << "(" << m_iX << "," << m_iY << ")"<<endl;

}

public:


int m_iX;

int m_iY;

};


int main(void)


{

Coordinate coorArr(1,2);

coorArr.printInfo();


//Coordinate *m_pCoorArr = new Coordinate[2];? ?// 報錯

system("pause");

return 0;

}


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

老有意思了 提問者

還是有點沒看懂,我那個不是在棧上生成的嗎
2019-06-04 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

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

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

進入課程

這個在構(gòu)造函數(shù)里的那一部分有點不懂(問題在代碼上附著,真心求解)

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

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

幫助反饋 APP下載

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

公眾號

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