capypad
0 Tage Serie
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
cpp
1
2
3
4
5
6
7
8
9
10
11
#include <memory>
#include <iostream>
 
void example() {
// Creating a unique_ptr to an integer
std::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.