RAII (Resource Acquisition Is Initialization) — tie resource lifetime to object lifetime.
1class FileHandler {2 std::FILE* file;3public:4 FileHandler(const char* name) : file(std::fopen(name, "r")) {}5 ~FileHandler() { if (file) std::fclose(file); }6 // Rule of Five applies7};
Benefits:
Modern RAII wrappers:
std::unique_ptr, std::shared_ptrstd::lock_guard, std::unique_lockstd::fstream for file I/Ostd::vector for dynamic arrays