Ugrás a tartalomhoz

std::unique ptr

A Wikiszótárból, a nyitott szótárból
(unique ptr szócikkből átirányítva)


Főnév

std::unique ptr (tsz. std::unique ptrs)

  1. (informatika) smart pointer

A std::unique_ptr magyarul egyedi mutató vagy egyedi tulajdonú okosmutató, amely egy dinamikusan létrehozott objektum kizárólagos birtoklásáért felelős.

Mit jelent pontosan?

  • Kizárólagos tulajdon: Egy adott unique_ptr birtokolja az objektumot, és amikor a unique_ptr kimegy a hatóköréből (például eléri a blokk végét, vagy explicit módon felszabadítjuk), automatikusan felszabadítja a memóriát.
  • Nem másolható: Egy unique_ptr nem másolható, csak áthelyezhető (move semantics). Ez biztosítja, hogy mindig csak egyetlen mutató hivatkozhat ugyanarra az erőforrásra.
  • Automatikus memória kezelés: Megakadályozza a memóriaszivárgást, mert automatikusan törli az általa birtokolt objektumot, ha megszűnik létezni.

Példa C++ kódban:

#include <memory>
#include <iostream>

class Pelda {
public:
    void kiir() { std::cout << "Hello, vilag!\n"; }
};

int main() {
    std::unique_ptr<Pelda> mutato = std::make_unique<Pelda>();

    mutato->kiir();

    // mutato automatikusan felszabadul, mikor eléri a blokk végét
}

Mikor hasznos?

  • Amikor biztosan akarjuk tudni, hogy ki birtokolja az objektumot.
  • Memória- vagy erőforrás-kezeléskor, hogy elkerüljük a memóriaszivárgásokat vagy más erőforrás problémákat.
  • A modern C++ programozásban széleskörűen ajánlott, mert egyértelműbb és biztonságosabb kódot eredményez.