Prosta lista w c++

sers
Użytkownik
Użytkownik
Posty: 103
Rejestracja: 6 maja 2008, o 19:30
Płeć: Mężczyzna
Lokalizacja: zoso
Podziękował: 12 razy
Pomógł: 5 razy

Prosta lista w c++

Post autor: sers »

Witam.

Chcialbym z danego obiektu, ktory wrzucilem do kontenera-listy wydobyc pole imie, niestety cos mi nie gra i nie mam pomyslu jak to rozwiazac, dzieki z gory za pomoc.


Kod: Zaznacz cały

#include <iostream>
#include <string>
#include <list>
using namespace std;

class matka
{
	protected:
	string imie;
	public:
	void virtual podaj_imie(){cout << imie << endl;};
	void virtual ustaw_imie(string i){imie = i;};
};

class dziecko:public matka
{
};

int main()
{
string k;
dziecko d;
cout << "Podaj imie: ";
cin >> k;
d.ustaw_imie(k);
d.podaj_imie();

list<matka> lista;
lista.push_front(d);
list<matka>::iterator iter=lista.begin();

iter.podaj_imie();                        // tutaj mi nie dziala

}
Ostatnio zmieniony 24 gru 2009, o 01:33 przez Szemek, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Prosta lista w c++

Post autor: spajder »

iterator zachowuje się tak jak wskaźnik:

Kod: Zaznacz cały

iter-> podaj_imie();
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Prosta lista w c++

Post autor: kadiii »

Często spotykanym błędem byłoby też:

Kod: Zaznacz cały

*iter.podaj_imie();
w którym role gra kolejność priorytetów operatorów, oczywiscie poprawna forma to wtedy:

Kod: Zaznacz cały

(*iter).podaj_imie();
ODPOWIEDZ