delete []p:加上[]能銷毀所有的元素,如果不加只銷毀第一個元素其實就是調用了p中的析構函數Coornidate.h
#include<string>using namespace std;class Coornidate{public: Coornidate(); ~Coornidate(); int m_iX; int m_iY;};Coornidate.cpp#include<iostream>#include"coordinate.h"using namespace std;/** * 對象數組 要求: 定義Coordinate類 數據成員:m_iX和m_iY 分別從棧和堆中實例化長度為3的對象數組 給數組中的元素分別賦值遍歷兩個數組 */ Coornidate::Coornidate() { cout<<"Coornidate()"<<endl; } Coornidate::~Coornidate() { cout<<"~Coornidate()"<<endl; }int main(void){ Coornidate coor[3]; coor[0].m_iX=1; coor[0].m_iY=3; Coornidate *p=new Coornidate[3]; p->m_iX=1; p[0].m_iY=3; p++; p->m_iX=5; p[0].m_iY=7; p[1].m_iX=9; p++; p->m_iY=11; for(int i=0;i<3;i++) { cout<<"coor"<<"("<<coor[i].m_iX<<","<<coor[i].m_iY<<")"<<endl; } for(int i=0;i<3;i++) { cout<<"p"<<"("<<p->m_iX<<","<<p->m_iY<<")"<<endl; p--; } p++; delete []p; p=NULL; return 0;}Coornidate()Coornidate()Coornidate()Coornidate()Coornidate()Coornidate()coor(1,3)coor(2752192,2752248)coor(2752460,2006045136)p(9,11)p(5,7)p(1,3)~Coornidate()~Coornidate()~Coornidate()~Coornidate()~Coornidate()~Coornidate()
新聞熱點
疑難解答
圖片精選