Witam, mam za zadanie stworzyc listę i jednym z poleceń do niej jest dopisywać osoby do listy.
Wszystko działa, tylko mam problem z dopisaniem pesala do osoby.
class CPerson
{
private:
string imie;
string nazwisko;
int wiek;
char *pPesel;
public:
CPerson( string i, string n, int w, char *pPes);
void CPerson::setPesel( char *pPes)
{
strcpy (pPesel , pPes );
}
char* CPerson::getPesel (void)
{
return pPesel;
}
...
};
CPerson::CPerson (string i, string n, int w, char *pPes) : imie(i) , nazwisko(n), wiek(w)
{
pPesel = new char [12];
strcpy (pPesel, pPes);
}
w mainie
list <CPerson> lst;
list <CPerson> ::iterator it;
it = lst.begin();
CPerson wzor1("Jan", "Kowalski", 22, "2323" );
for(int k=0; k<1;k++)
{
cout<<"Dodaj studenta do listy\n";
char *pesel;
pesel= new char[15];
cout<<"Podaj pesel: \n";
cin>>pesel;
CPerson person6(" "," ", ' ', " " );
person6.setPesel(pesel);
//cout<<person6.getPesel(); tutaj jak wpisze pesel to sie wyswietla jego zawartosc
lst.push_back(person6); // a tutaj juz nie...
}
lst.push_back(wzor1);
for ( list<CPerson>::iterator it=lst.begin(); it!=lst.end();it++){
cout<<*it<<endl;
}
Problem mam w tym, że za pomocą iteratora przy wypisywaniu informacji o nim (imie, nazwisko, wiek, pesel), pesel się nie wypisuje.
Prosiłbym o pomoc, co zrobiłem źle... (konstruktor kopiujacy i operator przypiania stworzylem). Kod się kompiluję i działa, wszystko się wypisuję, tylko nie pesel- dlatego nie zamieszczałem całego kodu... dodatkowo zrobiłem test i jeżeli pole na pesel zadeklaruje jako ( char pPesel[12]) to wtedy działa.. tylko, że mam zrobić jako (char *pPesel) w "celach dydaktycznych".
Z góry dzięki za odpowiedź.