1、new当个对象
new在自由空间分配内存,但其无法为其分配的对象命名,因次是无名的,分配之后返回一个指向该对象的指针。
1
|
int
*pi =
new
int
;
// pi指向一个动态分配的,未初始化的无名对象
|
此new表达式在自由空间构造一个int类型对象,并返回指向该对象的指针。
默认情况下,
动态分配的对象是默认初始化的,这意味着内置类型或组合类型的对象的值是无定义的,而类类型对象将用默认构造函数进行初始化。
2、new(多个对象)数组
new分配的对象,不管单个对象还是多个对象的分配,都是默认初始化。
但可以对数组进行值初始化,方法就是:在大小之后添加一对空括号。
1
2
|
int
*pia =
new
int
[
10
];
// 10个未初始化int
int
*pia2 =
new
int
[
10
]();
// 10个值初始化为0的int
|