封装篇(下)
对象数组
class Coordinate
{
public:
int m_iX;
int m_iY;
}
int main(void) {
Coordinate coord[3]; // 栈实例化
coor[1].m_iX = 10;
Coordinate *p = new Coordinate[3]; // 堆实例化 调用三次构造函数
p[0].m_iY = 20; // p->m_iY = 20;
// 从堆中实例化必须释放资源
delete []p;
p = NULL;
return 0;
}
为何是 delte[] p ,而不是 delete p ?
原因是为了正确执行析构函数,销毁3次,需要加 [],不加则销毁指针处
对象成员
如:一个线段,包含起点和终点。线段是一个对象,点也是对象。
class Coordinate
{
public:
Coordinate(int x,int y);
private:
int m_iX;
int m_iY;
}
class Line
{
public:
Line(int x1,int y1,int x2,int y2):m_coorA(x1,y1),m_coorB(x2,y2)
{
}
private:
Coordinate m_coorA;
Coordinate m_coorB