先把结论放上来:
- 加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求
- C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。
int *a = new int[100];
int *b = new int[100]();结果a中数据随机,因为其未经过初始化;b中经过了初始化,数据为0。
本文详细探讨了C++中使用new操作符时不同初始化方式的影响。对于数组的初始化,是否加括号会导致不同的行为:不加括号仅分配内存而不初始化,加括号则会将内存初始化为0。
先把结论放上来:
int *a = new int[100];
int *b = new int[100]();结果a中数据随机,因为其未经过初始化;b中经过了初始化,数据为0。
516

被折叠的 条评论
为什么被折叠?
