Mam problem z przeładowaniem operatora wejścia. Jak wczytać nazwisko? Podaję definicję klasy i definicje niektórych konstruktorów i metod. Próbowałem już wielu opcji. Wczytanie wieku to łatwizna, ale nazwisko... na razie mnie pokonało. Oczywiście nie rezygnuję, ale gdyby ktoś mógł podpowiedzieć. Z góry dzięki.
class Osoba
{
private:
char * nazwisko;
int wiek;
public:
Osoba();
Osoba (char *, int, char *, char *);
Osoba(Osoba &);
~Osoba();
Osoba& operator=(const Osoba&);
Osoba operator+(const Osoba&) const;
friend ostream & operator<<(ostream &, Osoba &);
friend istream & operator>>(istream &, Osoba &);**
void wypisz();
};
//fragmenty osoba.cpp//
////////////////////konstruktor bezargumentowy//
Osoba::Osoba()
{
nazwisko = new char[1];nazwisko[0]='\0';
wiek = 0;
}
///////////konstruktor kopiujący//
Osoba::Osoba(Osoba & os)
{
nazwisko = new char[strlen(os.nazwisko)+1];
strcpy(nazwisko,os.nazwisko);
wiek = os.wiek;
}
//////////operator przypisania//
```cpp
Osoba& Osoba::operator=(const Osoba& os)
{
if(this == & os) return *this;
else
{
delete[] nazwisko;
nazwisko = new char[strlen(os.nazwisko)+1];
strcpy(nazwisko,os.nazwisko);
wiek = os.wiek;
return *this;
}
}