class Coordinate{public:Coordinate(int x, int y){m_iX=x;m_iY=y;}void printInfo() const{cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;}public:int m_iX;int m_iY;};int main(void){const Coordinatencoor(3, 5);const Coordinate*p=&coor;constCoordinate&c=coor;coor.printInfo();p>>printInfo();c.printInfo();return 0;}
前面不变,这样顺序输出怎么调用了9次析构函数?
p = p-3; //使指针指到第一个元素的前一位
//遍历堆中数组元素
for(int j = 0;j<3;j++)
{
p++; //使指针指到第一个元素,为避免遍历结束后指针指到申请的堆外
cout<<"p_X"<<p->m_iX<<endl;
cout<<"p_Y"<<p->m_iY<<endl;
}
delete []p;
p = NULL;
system("pause");
return 0;
}
p = p-3; //使指针指到第一个元素的前一位
//遍历堆中数组元素
for(int j = 0;j<3;j++)
{
p++; //使指针指到第一个元素,为避免遍历结束后指针指到申请的堆外
cout<<"p_X"<<p->m_iX<<endl;
cout<<"p_Y"<<p->m_iY<<endl;
}
delete []p;
p = NULL;
system("pause");
return 0;
}
2017-04-19