int *p1 = new int[10];
int *p2 = new int[10]();
p1仅仅是用new分配内存,并不会初始化
p2不仅分配内存,还会初始化为0
解释:
对于内置类型,如int char系统自带的调用new时,若没有加()显示调用它的构造函数,仅仅为分配内存,
对于自定义类型,就算没有加()都会调用构造函数
int *p1 = new int[10];
int *p2 = new int[10]();
p1仅仅是用new分配内存,并不会初始化
p2不仅分配内存,还会初始化为0
解释:
对于内置类型,如int char系统自带的调用new时,若没有加()显示调用它的构造函数,仅仅为分配内存,
对于自定义类型,就算没有加()都会调用构造函数