Я читаю из файла с данными ниже. В конце мне нужно заполнить вектор m_hoteli объектами CHotel, в которых есть объекты CTurist. 2–5 ряды - это отели с их переменными, и после больших чисел (500 400 300 600) это туристы в каждом отеле.
Когда я запускаю его, мои векторы заполняются информацией из файла, но заполняет сведения о туристах как данные отеля, поэтому я не могу установить правильную связь между входом и CTurist.
Марина 5 500 Джо 21 1 Тишо 20 6 Виктория 31 20
Тюльпан 4 400 Сара 41 17 Росица 49 14 Валерия 24 2
BlackSea 3 300 Джон 35 12 Джон 35 11 Янни 28 6
SwissBell 5 600 Орлин 26 1 Маргарита 27 2 Джульетта 31
class CComplex:CHotel
{
protected:
string m_complex;
vector<CHotel> m_hoteli;
public:
CComplex(){};
CComplex(string filename, string nComplex)
{
string str;
m_complex = nComplex;
fstream file(filename, ios::in);
if (file.is_open())
{
CHotel temp(" ", 0, 0);
while (file >> temp)
{
m_hoteli.push_back(temp);
}
file.close();
}
else
throw "ERROR! ";
}
Конструктор CHotel (String stringname):
class CHotel : public CTurist //втори клас, наследник на CTurist
{
protected:
string hName; //име хотел
int stars; //звезди на хотела
int beds; //брой легла
public:
map<CTurist, unsigned> Turisti;
unsigned Sum = 0;
int br = 0;
CHotel(){};
CHotel(string s)
{
map<CTurist, unsigned> TR;
bool first = true;
istringstream TList(s);
int i = 0;
while (getline(TList, s, ' '))
{
switch (i)
{
case 0: this->setName(s); break;
case 1: this->setAge(stoi(s)); break;
}
if (i ==2 )
{
if (!first){ setName(getName()); setAge(getAge()); first = true; }
else{ TR[CTurist("", 0)]; }
i = -1;
}
i++;
}
Turisti = TR;
}