Zadanie 4 - Konstruktory

Przed przystąpieniem do pisania programów zalecam zapoznanie się z wykładem 3 dr Hanny Zbroszczyk.

1. Proszę napisać klasę cmplx, reprezentującą liczbę zespoloną. Klasa powinna mieć dwa składniki: double re oraz double im.
Dla tej klasy należy dodać odpowiednie konstruktory oraz destruktor:
cmplx(); //konstruktor domyślny (obydwa pola domyślnie = 0)
cmplx(float); //pole im powinno być domyślnie = 0 dla tego konstruktora
cmplx(float, float); //konstruktor główny
~cmplx(); // destruktor

Niech konstruktory posiadają wypisywanie na ekran informacji, by móc odróżnić który z nich został użyty. Klasa cmplx powinna zostać zapisana w dwóch oddzielnych plikach: cmplx.cpp oraz cmplx.h.

Ponadto klasa cmplx powinna posiadać metodę print wypisującą część rzeczywistą oraz część urojoną na ekran.

Następnie proszę uruchomić program z funkcją main jak niżej:
int main()
{
cmplx z1;
cout<<endl<<"Oto pierwsza liczba zespolona: "<<endl;
z1.print();

cmplx z2(1.);
cout<<endl<<"Oto druga liczba zespolona: "<<endl;
z2.print();

cmplx z3(1.,1.);
cout<<endl<<"Oto trzecia liczba zespolona: "<<endl;
z3.print();

return 0;
}

 

Koniecznie(!) należy przećwiczyć przykładowe programy dla zadania 3 (można przećwiczyć dla programów innych grup). Od zadania 4 przewidywany czas na napisanie klasy podzielonej na pliki cpp i h, z <= 4 składnikami i <=3 metodami (m. inn. do wypełniania i wypisywania) powinno zająć nie więcej niż 15 minut.

Dla zadania 4 takie pojęcia jak:

  • konstruktor
  • destruktor
  • domyślna wartość argumentu
  • przesyłanie do funkcji argumentow bedacych obiektami: przesyłanie przez wartość i przesyłanie przez referencje
  • przeładowywanie nazw
  • new oraz delete, czyli alokacja pamięci w C++

powinny brzmieć dla państwa uszu przyjaźnie i znajomo.

 

2. Proszę napisać klasę figura posiadającą (oddzielne pliki .cpp i .h!):
- n - liczbę boków
- d - długość boku
- color - kolor (string)
- count - ilość figur - static!

metody:
- konstruktor. Domyślnym kolorem jest czerwony, a domyślna liczba boków to 3. Stworzenie nowej figury powinno zwiększać pole count o 1.
- ZmienKolor(string new_color);
- ZmienLiczbeBokow(int new_b);

oraz metodę statyczną wypisującą ilość figur (count) - [static void wypisz_count()]

W klasie main:

Najpierw użyć funkcji wypisz_count (bez deklaracji obiektu klasy!).
Następnie proszę stworzyć w klasie main 3 figury:
figura f1(4, "zielona");
figura f2(8, "niebieska);
figura f3;

Następnie wypisać wartość pola count dla klasy figura. (wypisz_count)

Następnie stworzyć klasę Tablica_Figur, zawierającą pole:
figura * fig_tab;

z konstruktorem przyjmującym maksymalną liczbę figur (N)
Tablica_Figur(int)
oraz odpowiednim destruktorem.

Konstruktor powinien tworzyć tablicę N czerwonych trójkątów i przypisywać wskaźnik fig_tab pod tak stworzoną tablicę (operator new!)
Destruktor powinien odpowiednio zwalniać pamięć.

Należy następnie zadeklarować tablicę_figur dla 5 nowych figur.
Należy wypisać wartość pola count dla klasy figura. (wypisz_count)

 

Jak działa pole statyczne? Jaką zaletę ma funkcja statyczna?