关于new的问题
new作为一个函数,调用时会默认初始化,但是根据对象类型的不同,其情况也不同。
1 内置类型:
当new内置类型的单个对象时,为对象分配内存后其返回一个指向该对象的指针,但是并没有对其值进行初始化,所以得到的值是随机值。
例如:int*pa = new int;
当new内置类型的多个对象时,如数组,可以通过在后边加一对括号来进行值得初始化,均初始化为0。
例如: int*pa = new int [10]; // 值并没有被初始化
int*pa = new int [10] ();//值均被初始化为0
2 自定义类型:
对于自定义类型,当使用new来分配自定义类型对象时,会自动调用其默认的构造函数进行初始化,即使后边没有加括号。