以下两行有什么区别?
int *a = new int;
int *a = new int();
答案 0 :(得分:13)
int *a = new int;
a
指向默认初始化对象(此情况下未初始化对象,即值为根据标准不确定。
int *a = new int();
a
指向值初始化对象(此情况下零初始化对象,即值为根据标准,零。
答案 1 :(得分:6)
第一个变量默认初始化动态分配的int
,对于内置类型(如int
),它不会执行任何初始化。
第二个变量 value-initializes ,int
表示零初始化,赋值为0
。