ما هو سبب خطأ "ios is private" في ++C
السلام عليكم و رحمة الله و بركاته.
أعمل على لعبة بسيطة جداً في الكونسول باستخدام ++C فقط من باب المتعة، و لكن أواجه مشكلة و هي ما يلي.
عندما حاولت عمل دالة مهمتها هي الكتابة في ملفات، هذه الملفات هي ملف للنقود و ملفات أخرى للبضائع. و هذه الدالة عندما أستدعيها أمرر لها ٣ باراميترات.
الباراميتر الأول: هو كائن من الكلاس ofstream
للكتابة في الملفات.
الباراميتر الثاني: هو متغير نوعه *const char
و هو يمثل موقع الملف الذي أريد من الدالة فتحه باستخدام الباراميتر الأول.
الباراميتر الثالث: هو الخاصية التي أريد حفظها، مثل النقود.
ملاحظة: إذا كان الشرح غير مفهوم، إن شاء لله ستفهمون من الكودات. و هذا جزء من الكودات الخاصة باللعبة.
#include <fstream> #include <iostream> using namespace std; class Game { public: double money; ofstream save_money; void save(ofstream writeFile, const char* path, double property) { //أشك أن المشكلة من هذا الكود writeFile.open(path); if (writeFile) { writeFile << property; writeFile.close(); } else { perror("Error"); } } void theGame() { string play; cout << "what you want to do?\n"; getline(cin, play); if (play == "save") { cout << "Saving..\n"; //هنا استدعيت الدالة التي عرفتها في الأعلى save(save_money, "Money.txt", money); } else { cout << "Not a word\n"; } } }; int main() { Game game; game.theGame(); return 0; }
النتيجة تشبه هذه، لأنني حقيقة لم أحفظ الخطأ الذي يظهر، و الآن لا يوجد كهرباء حتى أشغل الحاسوب و أكتب الخطأ هنا.
ios_ is private
وأيضا، عندما يظهر هذا الخطأ، يقوم برنامج CodeBlocks بفتح صفحة جديدة مليئة بالأكواد التي لا افهمها، تقريباً 1000 كود، و يؤشر لي أين الخطأ.
أرجو المساعدة و أتمنى أن يكون السؤال مفهوم قليلاً.