Smart Pointer in c++: Unique Pointer

Words
41
Reading
1 min
Listen
Play
5y

Der einmalige Zeiger (Unique Pointer) ist ein weiterer Smart Pointer. Im Gegensatz zum Shared Pointer ist der Referrenzzähler immer 1. Das bedeutet, ein Unique Pointer erlaubt es nicht, dass weitere Pointer auf dieselbe Ressource zeigen dürfen.

Ein kurzes Beispiel eines Unique Pointers.

#include 
#include 

std::unique_ptr<int> uniquePointerDemo(){
    // create an unique pointer. The difference between shared and unique pointer is, that you can not point
    // to other pointers, because the counter is always 1. It is unique.
    auto pointer = std::make_unique<int>(5);

    // auto otherPointer = pointer;
    // ^ will produce a compile error because the originally created pointer is unique.
    return pointer;
}

int main() {
    auto pointerFromFunction = uniquePointerDemo();
    std::cout << "Value:" << *pointerFromFunction.get() << "\n";

    return 0;
}