Sunteți pe pagina 1din 2

L8: Mostenire multipla. Polimorfism. Fie clasele: 1.

Imprimanta: cu campurile (protected): vitezaDeTiparire (int), furnizor (char*) metoda (public): void afisare(void); +constructori (implicit, de initializare, de copiere) +operator de atribuire +destructor (trebuie avut grija de eliberarea z.m. pentru campul alocat dinamic!) +functii de get/set valori campuri 2. Copiator: cu campurile (protected): vitezaDeCopiere (int), service (char *) metoda (public): void afisare(void); +constructori (implicit, de initializare, de copiere) +operator de atribuire +destructor (trebuie avut grija de eliberarea z.m. pentru campul alocat dinamic!) +functii de get/set valori campuri 3. Multifunctional: derivata (public) din clasele Imprimanta si Copiator. cu campurile (mostenite, protected): vitezaDeTiparire (int), furnizor (char*), vitezaDeCopiere (int), service (char *). metoda (public): void afisare(void); +constructori (implicit, de initializare, de copiere) +operator de atribuire +destructor (trebuie avut grija de eliberarea Z.M. pentru campul alocat dinamic!) +functii de setare/preluare valori campuri Se cere: a) In fiecare c-tor/d-tor al fiecarei clase - afisati un mesaj de notificare a utilizatorului privind clasa si functia executata b) Creati un tablou de obiecte Imprimanta, un tablou de obiecte Copiator, un tablou de obiecte Multifunctional. Apelati, pentru fiecare element al fiecarui tablou, functiile de afisare =============================================================== c)Fie clasa Dispozitiv: cu campurile (protected): pret (double), denumire (char*) metoda (public): void afisare(void); +constructori (implicit, de initializare, de copiere) +operator de atribuire +destructor (virtual!) (trebuie avut grija de eliberarea z.m. pentru campul alocat dinamic!) +functii de get/set valori campuri. Considerand clasa Dispozitiv drept clasa de baza pentru clasele Imprimanta, respectiv Copiator, scrieti modificarile necesare in clasele Imprimanta si respectiv Copiator! De ce e necesara derivarea virtuala din clasa Dispozitiv? e)Scrieti clasa Magazin -cu campurile (protected) nrObiecte (unsigned int), Dispozitiv** dispozitive -metoda (publica) de citire (initializeaza campul nrObiecte cu valoarea dorita, aloca (daca este cazul) spatiu de memorie pentru tabloul de pointeri dispozitive, apoi pentru fiecare element al tabloului. Pentru fiecare element se va citi tipul (1-imprimanta, 2-copiator, 3-multifuncional -metoda (publica) de afisare - parcurge elementele tabloului,

-metoda (publica) de sortareAlfabetica a "dispozitivelor" dupa denumire -metoda (publica) de sortarePret a "dispozitivelor", crescator dupa pret -c-tor implicit, c-tor de copiere -operator de atribuire -operator +, respectiv += pentru adaugarea unui nou "dispozitiv" in magazin (realocarea tabloului, copierea pointerului, adaugarea noului element - a se revedea cerintele clasei MultimeDeNumereComplexe!) -d-tor (eliberarea z.m. pentru fiecare obiect retinut in parte, setarea pe nullptr a elementului din tablou, apoi eliberarea intregului tablou de pointeri)

S-ar putea să vă placă și