std::unique_ptr< double> d(new double[3]);
和
std::unique_ptr< double[]> darr(new double[3]);
至少兩者之間的差異之一似乎是,在以後的調用delete[]
但兩者都是有效的..但是怎麼回事?我的意思是在第一種情況下內存如何刪除,是不是用delete
刪除數組的未定義行爲?
其次,我知道上面darr
已[]
運營商定義,但如何訪問的d
第二和第三個成員,因爲沒有定義[]
運營商。
爲什麼會有人使用第一種語法而不是第二種?
第一個是無效的。 – juanchopanza 2014-09-23 21:43:54
哇我的問題來自閱讀博士多布斯文章http://www.drdobbs.com/cpp/c11-uniqueptr/240002708這是混亂比! – zar 2014-09-23 21:46:52
我看過這篇文章,但找不到任何新的int [x]的使用,但是有新的int(x),它是初始化值。 – Surt 2014-09-23 22:38:01