如果说我们要使用对象数组,那就从栈区和堆区两种存储方式上看它的使用
#include <iostream>
using namespace std;
class Coordinate
{
public:
Coordinate(){};//无参构造函数
~Coordinate(){};//析构函数
/*void setX(int x)
{
m_iX=x;
}
int getX()
{
return m_iX;
}
void setY(int y)
{
m_iY=y;
}
int getY()
{
return m_iY;
}*/
public:
int m_iX;
int m_iY;
};
int main()
{
Coordinate coor[3];
coor[0].m_iX=1;
coor[0].m_iY=2;
coor[1].m_iX=3;
coor[1].m_iY=4;
coor[2].m_iX=5;
coor[2].m_iY=6;//类似数组直接访问
Coordinate *p=new Coordinate[3];
p->m_iX=7;//默认访问首地址
p[0].m_iY=8;//与上面一行指向的都是首地址
p++;//指针往后指一个
p->m_iX=9;
p->m_iY=10;
p++;//指针往后指一个
p->m_iX=11;
p->m_iY=12;
p--;
p--;
for(int i=0;i<3;i++)
{
cout<<coor[i].m_iX<<" ";
cout<<coor[i].m_iY<<" ";
cout<<"\n";
}
for(int j=0;j<3;j++)
{
cout<<p[j].m_iX<<" ";
cout<<p[j].m_iY<<" ";
cout<<"\n";//没有进行过p++的才能用这种方式,因为上面进行了三次p++,p此时指向的是最后一个
}//为了规避这种情况我们利用指针回指打印数据
delete []p;
p=NULL;//注意如果用了p--指向第一个数据的话不能用delete,因为此时delete的不是我们申请的内存,
如果是这种情况使用p++指向到申请的内存在释放
system("pause");
return 0;
}