課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之封裝篇(下)
為什么我編譯的時(shí)候析構(gòu)了6次啊
2015-11-24
源自:C++遠(yuǎn)征之封裝篇(下) 2-3
正在回答
# include <iostream>
using namespace std;
class Coordinate
{
public:
? ? Coordinate(){cout << "Coordinate()" << endl;}
? ? ~Coordinate(){cout << "~Coordinate()" << endl;}
? ? int m_iX;
? ? int m_iY;
};
int main()
Coordinate coor[3];
coor[0].m_iX = 3;
coor[0].m_iY = 5;
Coordinate * p = new Coordinate[3];
p -> m_iX = 7;
p[0].m_iY = 9;
p++; //
p -> m_iX = 11;
p[0].m_iY = 13;
p[1].m_iX = 15;
p++;
p -> m_iY = 17;
for(int i=0;i<3;i++)
cout << "coor_x = " << coor[i].m_iX << endl;
cout << "coor_y = " << coor[i].m_iY << endl;
}
for(int j=0;j<3;j++)
cout << "p_x = " << p -> m_iX << endl;
cout << "p_y = " << p -> m_iY << endl;
p--;
delete []p;
p = NULL;
return 0;
再吃一個蘋果_
面具VS口罩 回復(fù) 再吃一個蘋果_
你是不是編譯器不一樣,codeblock和VC6.0執(zhí)行結(jié)束后會自動暫停,而老師用的是VC2010不會自動暫停,所以在return 0前面加了個system(“pause”)來實(shí)現(xiàn)程序暫停,但老師在暫停后顯示的析構(gòu)函數(shù)是從棧中執(zhí)行手動釋放的對象數(shù)組的析構(gòu)函數(shù),還有從堆中申請對象數(shù)組需要在暫停結(jié)束后的return 0處被自動銷毀,而老師的編譯器無法顯示出來。
把完整的代碼列出來,發(fā)帖時(shí)注意用格式化工具
舉報(bào)
封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學(xué)知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-09-24
# include <iostream>
using namespace std;
class Coordinate
{
public:
? ? Coordinate(){cout << "Coordinate()" << endl;}
? ? ~Coordinate(){cout << "~Coordinate()" << endl;}
? ? int m_iX;
? ? int m_iY;
};
int main()
{
Coordinate coor[3];
coor[0].m_iX = 3;
coor[0].m_iY = 5;
Coordinate * p = new Coordinate[3];
p -> m_iX = 7;
p[0].m_iY = 9;
p++; //
p -> m_iX = 11;
p[0].m_iY = 13;
p[1].m_iX = 15;
p++;
p -> m_iY = 17;
for(int i=0;i<3;i++)
{
cout << "coor_x = " << coor[i].m_iX << endl;
cout << "coor_y = " << coor[i].m_iY << endl;
}
for(int j=0;j<3;j++)
{
cout << "p_x = " << p -> m_iX << endl;
cout << "p_y = " << p -> m_iY << endl;
p--;
}
p++;
delete []p;
p = NULL;
return 0;
}
2016-01-13
你是不是編譯器不一樣,codeblock和VC6.0執(zhí)行結(jié)束后會自動暫停,而老師用的是VC2010不會自動暫停,所以在return 0前面加了個system(“pause”)來實(shí)現(xiàn)程序暫停,但老師在暫停后顯示的析構(gòu)函數(shù)是從棧中執(zhí)行手動釋放的對象數(shù)組的析構(gòu)函數(shù),還有從堆中申請對象數(shù)組需要在暫停結(jié)束后的return 0處被自動銷毀,而老師的編譯器無法顯示出來。
2015-11-24
把完整的代碼列出來,發(fā)帖時(shí)注意用格式化工具