Verschieben von Einzigartigen Zeigern
Kopieren nicht erlaubt
Ein std::unique_ptr
ist ein Smart-Pointer, der ein dynamisch zugewiesenes Objekt verwaltet und dessen ordnungsgemäße Löschung sicherstellt, wenn es außer Gültigkeitsbereich gerät. Es hat exklusives Eigentum an dem Objekt, das es verwaltet, was bedeutet, dass keine zwei std::unique_ptr
dasselbe Objekt gleichzeitig besitzen können.
main.cpp
123456789#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // This will cause a compilation error: copying is not allowed std::unique_ptr<int> second_unique_pointer = first_unique_pointer; }
Verschieben eines Unique Pointers
Obwohl Kopieren nicht erlaubt ist, können Sie das Eigentum übertragen des Objekts mit std::move
. Dies verschiebt die Ressource von einem std::unique_ptr
zu einem anderen und lässt den ursprünglichen Zeiger leer.
main.cpp
123456789101112131415#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // Transferring ownership using std::move std::unique_ptr<int> second_unique_pointer = std::move(first_unique_pointer); if (!first_unique_pointer) std::cout << "first_unique_pointer is now empty.\n"; std::cout << "second_unique_pointer owns the value: " << *second_unique_pointer << '\n'; }
Wenn Sie std::move
verwenden, wird das Eigentum des Objekts von einem einzigartigen Zeiger auf einen anderen übertragen. Danach besitzt der ursprüngliche Zeiger das Objekt nicht mehr, und der neue Zeiger wird sein Besitzer.
Swipe to start coding
Vervollständigen Sie den folgenden Code so, dass das Eigentum des dynamisch zugewiesenen Integers (mit dem Wert 42) sicher von ptr1
auf ptr2
übertragen wird.
Lösung
solution.cpp
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5.56Awesome!
Completion rate improved to 5.56
Verschieben von Einzigartigen Zeigern
Kopieren nicht erlaubt
Ein std::unique_ptr
ist ein Smart-Pointer, der ein dynamisch zugewiesenes Objekt verwaltet und dessen ordnungsgemäße Löschung sicherstellt, wenn es außer Gültigkeitsbereich gerät. Es hat exklusives Eigentum an dem Objekt, das es verwaltet, was bedeutet, dass keine zwei std::unique_ptr
dasselbe Objekt gleichzeitig besitzen können.
main.cpp
123456789#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // This will cause a compilation error: copying is not allowed std::unique_ptr<int> second_unique_pointer = first_unique_pointer; }
Verschieben eines Unique Pointers
Obwohl Kopieren nicht erlaubt ist, können Sie das Eigentum übertragen des Objekts mit std::move
. Dies verschiebt die Ressource von einem std::unique_ptr
zu einem anderen und lässt den ursprünglichen Zeiger leer.
main.cpp
123456789101112131415#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // Transferring ownership using std::move std::unique_ptr<int> second_unique_pointer = std::move(first_unique_pointer); if (!first_unique_pointer) std::cout << "first_unique_pointer is now empty.\n"; std::cout << "second_unique_pointer owns the value: " << *second_unique_pointer << '\n'; }
Wenn Sie std::move
verwenden, wird das Eigentum des Objekts von einem einzigartigen Zeiger auf einen anderen übertragen. Danach besitzt der ursprüngliche Zeiger das Objekt nicht mehr, und der neue Zeiger wird sein Besitzer.
Swipe to start coding
Vervollständigen Sie den folgenden Code so, dass das Eigentum des dynamisch zugewiesenen Integers (mit dem Wert 42) sicher von ptr1
auf ptr2
übertragen wird.
Lösung
solution.cpp
Danke für Ihr Feedback!
single
Awesome!
Completion rate improved to 5.56
Verschieben von Einzigartigen Zeigern
Swipe um das Menü anzuzeigen
Kopieren nicht erlaubt
Ein std::unique_ptr
ist ein Smart-Pointer, der ein dynamisch zugewiesenes Objekt verwaltet und dessen ordnungsgemäße Löschung sicherstellt, wenn es außer Gültigkeitsbereich gerät. Es hat exklusives Eigentum an dem Objekt, das es verwaltet, was bedeutet, dass keine zwei std::unique_ptr
dasselbe Objekt gleichzeitig besitzen können.
main.cpp
123456789#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // This will cause a compilation error: copying is not allowed std::unique_ptr<int> second_unique_pointer = first_unique_pointer; }
Verschieben eines Unique Pointers
Obwohl Kopieren nicht erlaubt ist, können Sie das Eigentum übertragen des Objekts mit std::move
. Dies verschiebt die Ressource von einem std::unique_ptr
zu einem anderen und lässt den ursprünglichen Zeiger leer.
main.cpp
123456789101112131415#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // Transferring ownership using std::move std::unique_ptr<int> second_unique_pointer = std::move(first_unique_pointer); if (!first_unique_pointer) std::cout << "first_unique_pointer is now empty.\n"; std::cout << "second_unique_pointer owns the value: " << *second_unique_pointer << '\n'; }
Wenn Sie std::move
verwenden, wird das Eigentum des Objekts von einem einzigartigen Zeiger auf einen anderen übertragen. Danach besitzt der ursprüngliche Zeiger das Objekt nicht mehr, und der neue Zeiger wird sein Besitzer.
Swipe to start coding
Vervollständigen Sie den folgenden Code so, dass das Eigentum des dynamisch zugewiesenen Integers (mit dem Wert 42) sicher von ptr1
auf ptr2
übertragen wird.
Lösung
solution.cpp
Danke für Ihr Feedback!