Avatar ·

Was ist RAII (Resource Acquisition Is Initialization) in C++ und wozu braucht man das?

Hallo Kollegen! Ich lerne C++ und höre ständig von RAII, kann aber das Konzept nicht vollständig verstehen. Es wird als "Ressourcenerwerb ist Initialisierung" übersetzt, aber das klingt irgendwie verwirrend.\n\nIch habe ein konkretes Problem. Ich schreibe eine kleine Klasse zum Arbeiten mit Dateien. Hier ist mein Code:\n\n```cpp\nclass FileHandler {\npublic:\n FileHandler(const char* filename) {\n file = fopen(filename, "r");\n if (!file) {\n std::cerr << "Datei konnte nicht geöffnet werden" << std::endl;\n }\n }\n \n void readData() {\n // lese Daten\n char buffer[100];\n fgets(buffer, 100, file);\n }\n \n ~FileHandler() {\n // hier vergesse ich, die Datei zu schließen\n }\n \nprivate:\n FILE* file;\n};\n```\n\nDas Problem ist, dass ich oft