From MJanik
Konstruktory - Laboratorium 3
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 3 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.
Pole statyczne - Laboratorium 4
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?