To już 3 temat w ciągu 3 godzin ;p Mam nadzieję, że dostanę odpowiedź na każdy z problemów. Chciałem sobie przeciążyć operator [] w takim kontekście:
vector <TWpis> wpis;
TWpis & operator[](int index) //metoda klasy TBazaDanych, 'wpis' jest prywatny
{
return wpis[index];
}
//gdzieś w funkcji main:
TBazaDanych spis("spis");
cout << spis.wpis[0].imie << " " << spis.wpis[0].nazwisko; //błąd! `TBazaDanych::wpis is private` WTF?!
No i o co chodzi? Jest prywatny, ale programowanie obiektowe chyba polega na dostępie do składowych poprzez metody, nie?
EDIT: Z ostatniej chwili! Zapomniałem, że operator[]
jest częścią TBazaDanych, a nie TWpis ;) Dobra, ale teraz co zrobić, żebym sobie robił tak jak wyżej: spis.wpis[0].nazwisko;
, a nie spis[0].nazwisko
- to drugie jakoś dziko wygląda. Przecież tablicę mam wpis
, a nie spis
.