Klasa vector - zapis do pliku

0

Mam takie klasy:
class Tplyta{
string wykonawca;
string tytul_plyty;
double cena;

public:
Tplyta(string W, string T, double C);
friend ostream &operator<<(ostream &s,const Tplyta &P)
{ return s<< "Wykonawca - " << P.wykonawca << endl << "Tytul - " << P.tytul_plyty << endl << "Cena - " <<P.cena << endl << "\n"; }
void do_pliku();
};

class TablicaPlyt
{
vector <Tplyta> Plyty;
public:
TablicaPlyt&operator<<(const Tplyta &T){ Plyty.push_back(T); return *this; }
const Tplyta &operator[](unsigned p)const { return Plyty[p]; }
void usun(unsigned m);
int rozmiar();
};

myslalem ze jak mam przeciążony operator [] to stworzę sobie metodę w klasie Tplyta void do_pliku()

i wywołanie:
unsigned n = Tab.rozmiar();
for(unsigned i=0;i < n; i++)
{Tab[i].do_pliku();}

}
wszystko mi zalatwi, ale niestety kompilator zglasza bląd :

D:\zad2.cpp|99|error: passing 'const Tplyta' as 'this' argument of 'void Tplyta::do_pliku()' discards qualifiers|

moge prosić o podpowiedź ?

1

void do_pliku()const;

0

Dziękuje :)
w oczekiwaniu na podpowiedz udało mi się wykorzystać to co wcześniej napisałem i wymyslilem coś takiego co zadzialalo :) :
fstream plik_out;
unsigned n = Tab.rozmiar();
plik_out.open( "wynik.txt", ios::out );
for(unsigned i=0;i < n; i++)
{plik_out << Tab[i];}

1 użytkowników online, w tym zalogowanych: 0, gości: 1