Witam serdecznie.
Mam do wykonania zadanie, z którym mi trochę opornie idzie. Potrzebuje waszej pomocy, jakiejś podpowiedzi:
Oto treść zadania:
Przygotuj klasę Osoba z prywatnymi polami char imie, char nazwisko, Osoba** dzieci i int wiek. Zadbaj aby definicja tej klasy byla całkowicie samowystarczalna i hermetyczna. przedefiniuj wszystkie domyślnie tworzone elementy tej klasy. Zaimplementuj operacje:
-zwiększenia wieku o 1 przez operator ++;
-zmiany, dodania lub usunięcia dowolnej litery przez operator + i -;**
Oto mój kod:
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
class Osoba{
private:
char* imie;
char* nazwisko;
Osoba** dzieci;
int wiek;
public:
Osoba() { cout << "Pusta osoba!"; }
Osoba(char* imie, char* nazwisko) : imie(imie), nazwisko(nazwisko) { dzieci = NULL; wiek = 0; }
Osoba(char* imie, char* nazwisko, int wiek) : imie(imie), nazwisko(nazwisko), wiek(wiek) { dzieci = NULL; }
Osoba(char* imie, char* nazwisko, int wiek, Osoba** dzieci) : imie(imie), nazwisko(nazwisko), wiek(wiek), dzieci(dzieci) {}
Osoba(char* im, char* na, Osoba** dz, int w) : wiek(w), dzieci(dz)
{
imie = new char[strlen(im)+1];
nazwisko = new char[strlen(na)+1];
strcpy(imie,im);
strcpy(nazwisko,na);
}
Osoba(const Osoba& os)
{
wiek = os.wiek;
dzieci = os.dzieci;
imie = new char[strlen(os.imie)+1];
nazwisko = new char[strlen(os.nazwisko)+1];
strcpy(imie,os.imie);
strcpy(nazwisko,os.nazwisko);
}
~Osoba()
{
delete[] imie;
delete[] nazwisko;
imie = NULL;
nazwisko = NULL;
dzieci = NULL;
wiek = 0;
}
void setImie(char* imie){ this->imie = imie; }
void setNazwisko(char* nazwisko){ this->nazwisko = nazwisko; }
void setWiek(int wiek){ this->wiek = wiek; }
void setDzieci(Osoba** dzieci){ this->dzieci = dzieci; }
void operator+(){
wiek++;
}
Osoba strcat(const Osoba& os, const char* s){
strcat(os.imie, s);
strcat(os.nazwisko, s);
}
Osoba operator+(const Osoba& os){
}
Osoba operator-(const Osoba& os){
}
friend ostream& operator<<(ostream &os, const Osoba &ktos);
};
ostream& operator<<(ostream &os, const Osoba& ktos) {
os << ktos.imie << " " << ktos.nazwisko << " (lat:" << ktos.wiek << ")" << endl;
return os;
}
int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}
Nie wiem czego jeszcze brakuje tej klasie oraz jak prawidłowo rozwiązać ostatni podpunkt.
Dziękuje za poświęcenie mi chwili czasu.