Smart Pointer in c++: Unique Pointer

avatar

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 <iostream>
#include <memory>

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;
}



0
0
0.000
0 comments