ما هو سبب خطأ "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 كود، و يؤشر لي أين الخطأ.
أرجو المساعدة و أتمنى أن يكون السؤال مفهوم قليلاً.