Mögliche Duplizieren:
std::auto_ptr to std::unique_ptr
What C++ Smart Pointer Implementations are available?unique_ptr VS auto_ptr
Können sagen, ich habe diese struct
:
struct bar
{
};
Wenn ich auto_ptr verwenden wie folgt aus:
void foo()
{
auto_ptr<bar> myFirstBar = new bar;
if()
{
auto_ptr<bar> mySecondBar = myFirstBar;
}
}
dann bei auto_ptr<bar> mySecondBar = myFirstBar;
C++ das Eigentum von myFirstBar zu mySecondBar überträgt und es gibt keine Übersetzungsfehler.
Aber wenn ich unique_ptr statt auto_ptr verwenden erhalte ich einen Compiler-Fehler. Warum erlaubt C++ dies nicht? Und was sind die Hauptunterschiede zwischen diesen beiden intelligenten Zeigern? Wann muss ich was benutzen?
Siehe http://stackoverflow.com/questions/5026197/what-c-smart-pointer-implementations-are-available – hmjd