Was ist RAII (Resource Acquisition Is Initialization) in C++ und warum wird es benötigt?
Hallo Kollegen! Ich lerne C++ und höre ständig von RAII, kann aber das Konzept nicht vollständig verstehen. Es wird als "Ressourcenbeschaffung ist Initialisierung" übersetzt, aber das klingt irgendwie verwirrend.
Ich habe ein konkretes Problem. Ich schreibe eine kleine Klasse für die Arbeit mit Dateien. Hier ist mein Code:
```cpp
class FileHandler {
public:
FileHandler(const char* filename) {
file = fopen(filename, "r");
if (!file) {
std::cerr << "Datei konnte nicht geöffnet werden" << std::endl;
}
}
void readData() {
// lesen der Daten
char buffer[100];
fgets(buffer, 100, file);
}
~FileHandler() {
// hier vergesse ich, die Datei zu schließen
}
private:
FILE* file;
};
```
Das Problem ist, dass ich oft