2017-01-28 3 views
1

Я пытаюсь перегрузить оператора < <, чтобы написать мой класс в файле, но в то же время вставить больше строк (больше объектов).Оператор перегрузки C++ << для вставки большего количества объектов

friend void operator<<(ofstream& o,Departament&d) 
{ 
    o<<d.denumire<< " " << d.nrAngajati << " "; 
    for(int i = 0 ; i< d.nrAngajati-1; i++) 
    { 
     o<<d.efortOmOre[i]<<", "; 
    } 
    o<<d.efortOmOre[d.nrAngajati-1]<<"."<<endl; 
} 

И я могу писать в файле с ним, но только с одним объектом в то время. Что-то вроде этого.

Class a,b,c; 
fisOut("out.txt"); 
fisOut<< a; fisOut<<b; fisOut<<c; 
fisOut.close(); 

но то, что я действительно нужно сделать, это его:

fisOut<<a<<b<<c; 
fisOut.close(); 

Как я могу это сделать?

+0

Посмотрите его снова. – LogicStuff

+0

https://en.m.wikipedia.org/wiki/Method_chaining – PcAF

ответ

3

Лучшей практикой является то, что оператор < < возвращает поток. Это позволяет объединять выходы, как вы этого хотите.

Итак:

friend ofstream& operator<<(ofstream& o,Departament&d) 
{ 
    ... 
    return o; 
} 
+0

Lol, это было так просто .. не видел, что придет. Также большое спасибо! – ZZR

Смежные вопросы