Klasy - proszę o sprawdzenie kodu

0

Witam, mam takie zadanie do zrobienia poniżej wpisałem moje rozwiązanie prosił bym o sprawdzenie i jakieś poprawki lub wskazówki :)

Napisać poniższy kod(bez rzeczy zbędnych)
a) Napisać definicję klasy osoba zawierającą trzy pola prywatne: rzeczywiste wiek, wskaźnik do ciągu znaków nazwisko oraz całkowite stałe id. Klasa ma też zawierać (napisać definicje poniższych metod)
-konstruktor z trzema parametrami o wartościach domyślnych- parametry mają inicjalizować w/w pola,
-destruktor
a) Zdefiniować klasę sklep zawierającą pole prywatne kierownik klasy osoba.
b) Zdefiniować funkcje globalną fun, a w niej zdeklarować obiekt klasy sklep.
c) Napisać funkcje main, a w niej zdeklarować dwa obiekty klasy osoba(każdy w inny sposób) i wywołać fun.
d) Wskazać(strzałką) miejsca uruchomienia destruktora każdego z obiektów użytych w programie. Przy strzałce dopisać nazwe likwidowanego obiektu.

#include <string.h>

class osoba {
   private: double wiek;
         char* nazwisko;
         const int ID;
         
   public: osoba(double w=18, char* n="Nowak", int i=0):ID(i)
         {
            wiek=w;
            nazwisko=new char[strlen(n)+1];
            strcpy(nazwisko,n);
         }
         
         ~osoba()
         {
            delete[] nazwisko;
         }
         
};

class sklep {
   private: osoba kierownik;
};

sklep fun()
{
   sklep jakis_sklep;
   return jakis_sklep;
}

void main()
{
   osoba osoba1;
   osoba* osoba2= new osoba;
   
   fun(); 
   //<- tu destruktor sklep
   delete osoba2; //<- tu destruktor usunie osobe2
}// <- tu destruktor usunie osobe1 
0

W destruktorach swoich klas wyświetlaj sobie informacje o ich wywołaniu, dzięki czemu łatwiej wyśledzisz ich wywołanie. W funkcji fun usunie też obiekt jakis_sklep, który zawiera obiekt osoba, dla którego też zostanie wywołany destruktor.

 void main() {}

Błąd kompilacji, chyba że używasz starego kompilatora. Czytaj ostrzeżenia kompilatora. Możesz zamienić string.h na cstring.

0

main jest int a reszta wygląda ok. Chociaż całe to zadanie jest totalnie bez sensu ;]

0

Dzięki wielkie to jest tylko takie ćwiczenie do sprawdzenia znajomości :)

0 użytkowników online, w tym zalogowanych: 0, gości: 0