簡體   English   中英

有時,該類必須“默認復制c'tor”? 當我做“新類型[..]”時會發生什么?

[英]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 constructordefault 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM