Sunteți pe pagina 1din 4

Programare orientate-obiect

1. Ce este o functie virtual pura in C++?


- In c++ exista posibilitatea definirii unei asa numite functii virtual pure adaugand =0 la
finalul definitiei acelei functii, transformand acea clasa intr-o clasa abstracta
asigurand o implemetare acelei functii

2. Enumerati diferentele si asemanarile intre un pointer si o referinta.


- Asemanari:
- din perspective codului final care rezulta in urma compilarii, nu exista diferente
intre pointer si referinta
- Deosebiri:
- pointerii pot sa ramana neinitializati, in timp ce referintele nu
- pointerii isi pot schimba valoare pe parcursul programului, in timp ce
referintele nu, deoarece sunt initializati o data
- un pointer poate avea valoarea NULL, referinta trebuie sa aiba o zona de
memorie valida
- pointerii accepta operatii aritmetice, cast intre ei, referintele nu

3. Care este rolul unui template specializat? Exemple.


- Template-urile specializate reprezinta o modalitate cand pentru o clasa mai scriem inca
o definitie in care suprascrien codul initial din template cu altul care sa fie specific
pentru anumiti parametrii de un anumit tip

-
-

4. Principiul Liskov.
- Daca pentru fiecare obiect o1 al tipului S exista un obiect o2 al tipului T astfel incat
pentru orice program P, comportamentul lui P este neschimbat cand o1 inlocuieste o2
atunci S este copil al lui T.
- Preconditiile sa nu fie mai puternice decat in metoda clasei de baza
- Postconditiile sa nu fie mai slabe decat in metoda clasei de baza

5. Care este rolul derivarii virtual in c++?


- Atunci cand o clasa derivate mosteneste o clasa de baza, un obiect al clasei derivate
poate fi considerat ca fiind o instant a clasei de baza. Daca exista functii care au fost
redefinite in clasa derivate, comportamentul e dat de functia din copil
- Ex animal: virtual eat – mananc mere, catel:animal: eat – mananc pere

6. Design pattern Composite. Exemple de utilizare.


- compune obiectele intr-un arbore si le reprezinta ierarhic
e un patern in care atat obiectele pot forma grupuri de obiecte iar GRUPUL devine si el
un obiect din aceeasi categorie cu obiecte.e dispunerea obiectelor si grupurile se face
ierarhic.
- Utilizare: clientii pot ignora diferentele intre ob individuale si cele compuse, pentru a
realize ierarhii

7. Functii friend. Utilizare si limitari. Exemple.


- Este o functie care poate accesa memebri si metodele private din acea clasa
- Nu este o functie care sa apartina clasei. Din punct de vedere specificator de acces nu se
aplica, adica nu conteaza faca functia friend era scrisa in secttiunea private sau in cea
public

8. Principiul inversiunii dependentelor


- Modele de nivel inalt nu trebuie sa depinda de modele de nivel jos, adica implementari
de abstractii. Amanadoua trebuie sa depinde de abstractii.
9. Supraincarcarea operatorului *. Exemple de utilizare.
- Posibilitatea utilizarii operatorilor de tipuri definite de utilizator

10.Design pattern ul Visitor. Exemple de utilizare


- Permite definirea unei noi operatii fara a schimba clasele elementelor peste care
lucreaza
- Utilizare: elementele unei masini

11.For each in c++ 11. Clase cu support pentru foreach. Exemple.


- InputIterator, ForwardIterator

12.Desingn pattern-ul Observer. Exemplu de utilizare.


- Permite observarea unui obiect pentru a vedea daca se produce vreun eveniment.
- Utilizare: semafor, stiri, camera de filmat

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