[英]There are times so that class must “default copy c'tor” ? and what is happens while I doing “new Type[..]”?
在下面的行中會發生什么:
Type* arr=new Type[20];
類型Type
必須copy constructor
還是default constructor
或default copy constructor
?
再次,在此行中調用哪種方法?
當你說:
Type* arr=new Type[20];
那么足夠的內存來包含20個Type
對象。 被分配。 然后,調用Type
的默認構造函數20次,以構造每個Type
實例。 如果Type
沒有默認的構造函數(就像您定義了其他構造函數一樣),則無法構造這些實例。
std::vector
容器沒有此限制,因為您可以為其初始化提供參數,也可以動態創建對象,然后在創建std::vector
后將它們推入std::vector
。 這是為什么您應該始終優先使用std::vector
不是通過new
分配數組的眾多原因之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.