有些时候,阶级必须"default copy c'tor" ?当我做"new Type[..]"时会发生什么?

There are times so that class must "default copy c'tor" ? and what is happens while I doing "new Type[..]"?

本文关键字:new Type 什么 tor copy default      更新时间:2023-10-16

以下行会发生什么:

Type* arr=new Type[20];  

类型Type必须copy constructordefault constructordefault copy constructor

再说一次,这一行中调用了哪种方法?

当你说:

Type* arr=new Type[20];  

然后分配足够的内存来包含 20 个类型Type的对象。然后调用Type的默认构造函数 20 次,以构造每个实例Type。如果Type没有默认构造函数(如果您定义了其他构造函数,则不会有(,则无法构造这些实例。

std::vector容器没有此限制,因为您可以为其初始化提供参数,也可以在创建矢量后动态创建对象并将它们推送到std::vector中。这是您应该始终更喜欢使用std::vector而不是通过new分配数组的众多原因之一。