new表达式i
c++吧
全部回复
仅看楼主
level 6
毁灭者andy 楼主
如图,图二说动态分配数组无法为其元素设定初值,图一反之,那个是
正确的
??网上说动态分配数组时,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化。
string *psa=new string [10];
int *pia=new int [10];
这两个new表达式都分配了10个对象的数组,第一个数组是string类型,分配了存储对象的空间后,会调用string类型的默认构造函数依次初始化数组中的每个元素。第二个数组为内置类型,分配了存储10个int对象的内从空间,并没 初始化。
可以跟在数组后面加一对空圆括号,对数组元素进行初始化。
谢谢大佬
2018年08月21日 14点08分 1
level 6
毁灭者andy 楼主
dd
2018年08月21日 14点08分 2
level 11
可能第二本书比较老
C++11以前数组是不行的
2018年08月21日 15点08分 3
level 11
不冲突啊 你没发现第一个和第二个形式都不一样么 第二个就是单纯new了一个数组,第一个还用中括号写了初始化元素,相当于调了给构造函数
2018年08月24日 01点08分 4
1