int *p1 = new int[10];
int *p2 = new int[10]();
解答:p1申请的空间里的值是随机值,p2申请的空间里的值已经初始化;
对于内置类型而言,new仅仅是分配内存,除非后面显示加(),相当于调用它的构造函数;对于自定义类型而言,只要一调用new,那么编译器不仅仅给它分配内存,还调用它的默认构造函数初始化,即使后面没有加()
int *p1 = new int[10];
int *p2 = new int[10]();
解答:p1申请的空间里的值是随机值,p2申请的空间里的值已经初始化;
对于内置类型而言,new仅仅是分配内存,除非后面显示加(),相当于调用它的构造函数;对于自定义类型而言,只要一调用new,那么编译器不仅仅给它分配内存,还调用它的默认构造函数初始化,即使后面没有加()