C++的对象数组创建及删除
<学习笔记>
以前一直对C++的对象数组是模糊状态。前一阵子有了比较清晰的了解。今天有空,再巩固下。
首先碰到的问题:A *a[10];delete[] a; 为什么出错?
其实这个不如说成是对象指针数组,a并不是指向所有对象的首地址,而是指向第一个对象的首地址。只能for(int i=0;i<10;i++) delete a[i];
其实想用delete[],必须得对应new[]
A *a=new A[10]; //这样既可delete[],这时a指向的才是A[10]对象数组的首地址。
其特性很像数组,比如初始化
A *a=new A[10]{(x),(x,x)};//这样既可对第一个第二个对象的构造函数进行选择并初始化,否则默认参数为空的构造函数初始化