zajecia nr 8 grupa 04


//Dany jest interfejs klasy K0 jak poniżej:
class K0{
protected:
double m_wartaK0;
public:
virtual double ileWarta() = 0;
virtual void ktoJaJestem() = 0;
virtual void ustawZmiennaWarta(double) = 0;
};
class K1: public K0{
protected:
double m_wartaK1;
public:
virtual double ileWarta() { /* uzupełnij */ }
virtual void ktoJaJestem() { /* uzupełnij */ }
virtual void ustawZmiennaWarta(double a){ /* uzupełnij */ }
};
//!!! UWAGA !!! NIE UŻYWAĆ DZIEDZICZENIA WIRTUALNEGO !!!
gdzie funkcja (we wszystkich klasach potomnych takie same):
 ileWarta  zwraca wartość zmiennej składowej m_wartaK...,
 ktoJaJestem  wyświetla tekst  Jestem funkcja z klasy K...
 konstruktor  wyświetla tekst  Stworzono obiekt klasy K...
 destruktor  wyświetla tekst  Kasuje obiekt klasy K...
gdzie dana składowa m_wartaK...:
 występuje we wszystkich klasach dziedziczących z K0 (od K0 do K9) jak składowa tych klas.
A) Zbuduj klasy oparte o poniższym schemacie dziedziczenia publicznego
B) Dla tak zbudowanych klas w fukcji main() (patrz poniższa funkcja main() ):
 stwórz dynamicznie (o ile to możliwe) obiekty wszystkich klas ze schematu dziedziczenia,
 wywołaj funkcje ktoJaJestem() oraz funkcje ileWarta()
 skasuj obiekt dynamicznie (o ile to możliwe)
C) Funkcja ustawZmiennaWarta() ustawia zmienna m_warta w bieżącej klasie Kx i wszystkich pierwotnych względem klasy Kx na
wartość podaną w argumencie;
void rozdziel(){
cout << "--------------------------------------------------" << endl;
}
int main() {
K0* objK8 = (& ) new K8; // w miejsce (& ) wpisz odpowiednie rzutowanie typów (jedno lub więcej)
objK8->ktoJaJestem();
objK8->ustawZmiennaWarta( 12.03 ); // 12.03  przyjąć tutaj dowolną wartość double
std::cout << "Fukcja K8::ileWarta=" << objK8->ileWarta() << std::endl;
delete objK8;
rozdziel();
// poniższy kod uzupełnij jak wyżej
K0* objK1 = (& ) new K1;
// & uzupełnić
rozdziel();
K0* objK2 = (& )new K2;
// & uzupełnić
rozdziel();
K0* objK3 = (& )new K3;
// & uzupełnić
rozdziel();
K0* objK4a = (& )new K4;
// & uzupełnić
rozdziel();
K1* objK4b = (& )new K4;
// & uzupełnić
rozdziel();
K0* objK5a = (& )new K5;
// & uzupełnić
rozdziel();
K1* objK5b = new K5;
// & uzupełnić
rozdziel();
K1* objK8b = (& )new K8;
// & uzupełnić
rozdziel();
// & uzupełnij o pozostałe klasy i zależności
return 0;
}


Wyszukiwarka

Podobne podstrony:
zajecia nr 5 grupa 04
zajecia nr 6 grupa 04
zajecia nr 8 grupa 03
zajecia nr 5 grupa 03
grupa 01 zajecia nr 44
BDiA Projektowanie Semestr 6 Zajecia nr 04 Roboty ziemne
grupa 03 zajecia nr 33
grupa 02 zajecia nr 33
grupa 02 zajecia nr 1
zajecia nr 9
BDiA Projektowanie Semestr 6 Zajecia nr 05 Trasowanie rowow
Zajęcia nr 1
zadanie zajęcia nr 4
zajecia nr 3
zajecia 10 grupa 04x
zajecia 11 grupa 03c
zajecia 06 grupa 04s
Kartkowka nr 1 Zadania 04 XI 2009

więcej podobnych podstron