🛡️ 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
}