关于内置类型与自定义类型调用new初始化问题

int *p1 = new int[10];
int *p2 = new int[10]();

 p1仅仅是用new分配内存,并不会初始化

p2不仅分配内存,还会初始化为0

解释:

对于内置类型,如int char系统自带的调用new时,若没有加()显示调用它的构造函数,仅仅为分配内存,

对于自定义类型,就算没有加()都会调用构造函数 

猜你喜欢

转载自blog.csdn.net/weixin_42720316/article/details/82961443