Gestione Memoria: Sicurezza in Bottega

🛡️ Gestione Memoria: Sicurezza in Bottega

In falegnameria, non si lasciano attrezzi sparsi sul banco dopo il lavoro. In C++, usiamo la RAII (Resource Acquisition Is Initialization) per assicurarci che la memoria venga liberata automaticamente.

1. Addio a new e delete

L’uso di puntatori “nudi” è vietato. Utilizziamo gli Smart Pointers per definire chiaramente la proprietà (ownership) delle risorse.

  • std::unique_ptr: Proprietà esclusiva. Un solo proprietario per la risorsa.
  • std::shared_ptr: Proprietà condivisa tramite reference counting.
  • std::weak_ptr: Per osservare una risorsa condivisa senza impedirne la distruzione (evita i cicli).

2. Esempio Pratico

#include <memory>
#include <vector>

class Tool {
public:
    Tool(int id) : id_(id) {}
    void use() {}
private:
    int id_;
};

void run_workshop() {
    // Creazione sicura di un oggetto gestito
    auto saw = std::make_unique<Tool>(101);
    saw->use();
    
    // Il puntatore verrà distrutto automaticamente qui
} 
Last updated on Sunday, February 15, 2026
Built with Hugo
Theme Stack designed by Jimmy