Avatar ·

ما هو RAII (Resource Acquisition Is Initialization) في C++ ولماذا هو مطلوب؟

مرحبًا أيها الزملاء! أنا أتعلم C++ وأسمع باستمرار عن RAII، لكنني لا أستطيع فهم هذا المفهوم تمامًا. يبدو أن الاختصار يعني "الحصول على المورد هو التهيئة"، لكن هذا يبدو مربكًا بعض الشيء. لدي مشكلة محددة. أنا أكتب فئة صغيرة للعمل مع الملفات. إليك الكود الخاص بي: ```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() { // هنا أنسى إغلاق الملف } private: FILE* file; }; ``` المشكلة هي أنني غالبًا ما