C++ में RAII (Resource Acquisition Is Initialization) क्या है और इसकी आवश्यकता क्यों है?
नमस्ते सहयोगियों! मैं C++ सीख रहा हूँ और लगातार RAII के बारे में सुनता हूँ, लेकिन इस concept को पूरी तरह से समझ नहीं पा रहा हूँ। जैसे कि इसका अर्थ है "संसाधन प्राप्त करना ही initialization है", लेकिन यह कुछ उलझा हुआ लगता है।
मेरी एक विशेष समस्या है। मैं files के साथ काम करने के लिए एक छोटा class लिख रहा हूँ। यहाँ मेरा code है:
```cpp
class FileHandler {
public:
FileHandler(const char* filename) {
file = fopen(filename, "r");
if (!file) {
std::cerr << "फ़ाइल खोलने में विफल" << std::endl;
}
}
void readData() {
// डेटा पढ़ते हैं
char buffer[100];
fgets(buffer, 100, file);
}
~FileHandler() {
// यहाँ मैं file को बंद करना भूल जाता हूँ
}
private:
FILE* file;
};
```
समस्या यह है कि मैं अक्सर