以下是引用czyhzc在2012-3-8 13:03:55的发言:
如果类型X有个默认的构造函数,那么
X* p1=new X;
X* p2=new X[17];是不是都是对的,
另外 如果类型Y有一个构造函数,但不是默认的构造函数,那个下面的哪个是正确的
Y* p3=new Y;
Y* p4=new Y[17];
Y* p5=new Y(17);
求解!!!
不知道楼主想要表达的真实意思,我试着说说
X* p1=new X;
//在堆上定义了一个X的变量,调用默认的构造函数 delete的时候用 delete p1
X* p2=new X[17];
//在堆上定义了一个数组,元素是X的变量,对每个元素调用默认的构造函数,所以一共调用了17次,记得delete的时候用 delete []p2
如果Y的构造函数带参数,或者说Y没有不带参数的构造函数那么不能用这种写法,所以前两个都错
Y* p5=new Y(17); //在堆上定义了一个Y的变量,并调用构造函数初始化 delete的时候用 delete p5