我有一個類如何使用的unique_ptr數組
class A {
public:
A(){cout<<"C";}
~A(){cout<<"D";}
};
int main(){
unique_ptr<A> a(new A[5]); // - doesn't work
unique_ptr<A> a(new A[1]); // - doesn't work
unique_ptr<A> a(new A); // - works
}
爲什麼會出現這種情況?
我想事情是關於移動構造函數(它不能自動創建,因爲析構函數),但爲什麼我們需要一個移動構造函數?
,什麼是之間的區別:
unique_ptr<A> a(new A[1]); // - doesn't work
unique_ptr<A> a(new A); // -works
考慮'矢量' –
你懂的'A'和'A []'之間的區別? –
請不要*寫「不起作用」,這是無用的。要麼它不能編譯(什麼錯誤信息?)或它正在崩潰(根據調試器的位置?)還是它產生了意想不到的結果(哪一個和預期的結果?)等。 –