Мой класс не получает правильную информацию от другого класса
Данных.ч
#ifndef DATA_H #define DATA_H class Data { public: Data(); void newData(); void saveData(); void getData(); void chgStage(); void display(); float getGold(); int getLvl(); int getStage(); int getExp(); private: float gold; int lvl,stage,exp; }; #endif // DATA_H
Data.cpp
#include "Data.h" #include <iostream> #include "Enemy.h" #include "Level.h" #include <fstream> #include <string.h> #include <windows.h> using namespace std; Data::Data() { } void Data::newData() { fstream flux("data.txt",ios::out); flux<<"1 "<<"1 "<<"1 "<<"0"; flux.close(); } void Data::saveData() { } void Data::getData() { fstream flux("data.txt",ios::in); flux>>lvl>>gold>>stage>>exp; flux.close(); cout<<lvl<<" "<<gold<<" "<<exp; } void Data::chgStage() { int temp; cout<<endl<<"You are currently on stage "<<stage; cout<<endl<<"What stage do you wish to change to?"; cin>>temp; if(temp==stage) { system("CLS"); cout<<endl<<"You are already on this stage\n"; system("PAUSE"); } else if(temp*10>lvl) { system("CLS"); cout<<endl<<"You did not unlock that stage yet.\n"; system("PAUSE"); } else if(temp!=0) { system("CLS"); fstream flux("data.txt",ios::out); flux<<lvl<<" "<<gold<<" "<<temp<<" "<<exp; flux.close(); cout<<endl<<"Changed to stage "<<temp<<"\n"; system("PAUSE"); } } float Data::getGold() { return gold; } int Data::getLvl() { return lvl; } int Data::getStage() { return stage; } int Data::getExp() { return exp; } void Data::display() { cout<<lvl<<" "<<gold<<" "<<exp; }
#ifndef LEVEL_H #define LEVEL_H class Level { public: Level(); void stage1(); void stage2(); void stage3(); private: float gold; int lvl,stage,exp; }; #endif // LEVEL_H
Level.cpp
<pre>#include "Level.h" #include <iostream> #include "Enemy.h" #include "Data.h" #include <windows.h> using namespace std; Level::Level() { } void Level::stage1() { } void Level::stage2() { } void Level::stage3() { }
Я хочу получить эти частные var из данных в частные var на уровне, чтобы использовать их там. Кроме того, это, вероятно, не лучший способ сделать это, я также был бы признателен за некоторые другие лучшие способы сделать это.
Что я уже пробовал:
Я попытался сделать объект данных в конструкторе уровня, но он не получает данные , которые хранятся в этих переменных(он показывает их так, как будто они не инициализированы), а также попытался инициализировать член, я могу получить личные данные в Main из данных, но я не могу получить данные из данных в класс уровня.
Я явно что-то упускаю