首页 > 编程 > C++ > 正文

C++对象数组

2019-11-08 19:41:24
字体:
来源:转载
供稿:网友

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()


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选