cpp / intermediate
Snippet
Smart Pointer: std::unique_ptr
std::unique_ptr ist ein intelligenter Zeiger, der ein anderes Objekt besitzt und verwaltet und dieses Objekt löscht, sobald der unique_ptr den Gültigkeitsbereich verlässt. Er kann nicht kopiert, sondern nur verschoben werden, was eine strikte Einzelbesitzerschaft garantiert.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
#include <memory>#include <iostream>void example() {// Creating a unique_ptr to an integerstd::unique_ptr<int> ptr = std::make_unique<int>(42);if (ptr) {std::cout << "Value: " << *ptr << std::endl;}} // ptr is automatically destroyed here, and memory is freed
Erklärung
1
std::unique_ptr<int> ptr = std::make_unique<int>(42);
Allociert einen Integer auf dem Heap und kapselt ihn in einen unique_ptr zur automatischen Verwaltung.
2
std::cout << *ptr
Dereferenziert den Smart Pointer wie einen rohen Zeiger, um auf den gespeicherten Wert zuzugreifen.