先把结论放上来:
- 加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求
- C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。
int *a = new int[100];
int *b = new int[100]();
结果a中数据随机,因为其未经过初始化;b中经过了初始化,数据为0。
先把结论放上来:
int *a = new int[100];
int *b = new int[100]();
结果a中数据随机,因为其未经过初始化;b中经过了初始化,数据为0。