Sunteți pe pagina 1din 3

Obiecte

-au stari si actiuni


-au interfata
-sunt grupate in clase, obiecte cu aceleasi proprietati
Clase
-mentioneaza proprietatile generale ale obiectelor din clasa respectiva
-clasele nu se pot rula
-folositoare la encapsulare
-reutilizare cod (mostenire)
Mostenire
-obiecte cu proprietati similare
-reutilizare de cod
Encapsulare
-ascunderea informatiei
-specificatori de acces: public, protected, private
Polimorfism
-clartitae/cod mai sigur
-polimorfism la compilare
-polimorfism la executie (RTTI)
Sabloane
-cod mai sigur
-reutilizare cod
-putem implementa liste de tipuri diferite
Overload pe functii
-acelasi nume
-difera tipurile de date
-tipul de intoarcere nu e suficient pt diferenta
-functii diferite cu inteles apropiat
Mostenire
-incorporarea unei clase in alta
-refolosire de cod
-detalii mai subtile pentru tipuri si subtipuri
-clasa derivata contine toate elementele clasei de baza si mai poate adauga noi elemente
Constructori/Destructori
-initializare automata
-obiectele nu sunt statice
-nu pot intoarce valori
-preia numele clasei
-invocati de fiecare data cand un obiect de acel tip este creat
Functii prieten
-pentru accesarea campurilor protected, private din alta clasa
-folositoare pentru overload pe functii de I/O

Clase prieten
-daca avem o clasa prieten, toate functiile membre ale clasei prieten au acces la membrii privati ai
clasei
Functii inline
-executie rapida
-pentru functii foarte mici
-pot fi si membri ai unei clase
Constructori parametrizati
-trimitem arugmente la constructori
-putem defini mai multe variante cu mai multe numere si tipuri de parametri
-overload de constructori
Membri statici
-o singura copie din acea variabila va exista pentru toata clasa
-fiecare obiect din clasa poate accesa campul respectiv, dar in memorie avem o singura variabila
-variabile initializate cu 0 inainte de crearea primului obiect
-o variabila statica e definita in mod global in afara clasei, alocandu-i spatiu in memorie
-variabila poate fi initializata inainte de a instantia un obiect
Functii statice
-au dreptul sa foloseasca doar elementele statice din clasa
-nu puteam avea varianta statica si non-statica pt o functie
-nu pot fi declarate virtual
Constructor de copiere
-face o copie identica pe date
-folosit pt initializare
Argumente implicite
-putem defini valori implicite pentru parametrii unei functii
-valorile implicite sunt folosite atunci cand acei parametri nu sunt dati la apel
-flexibilitate
Overload pe operatori
-majoritatea operatorilor pot fi supraincarcati
-similar ca la functii
-NU se poate redefini nr de operanzi
-NU putem face overload pe . :: * ?
-e bine sa facem operatiuni similare cu sensul operatorului
-putem face supraincarcarea ca functie prieten (primul param e operandul stang, al doilea cel drept;
prin functiile prieten nu se pot supraincarca -> () [];daca facem prin functii prietene putem avea
probleme cu pozitia operanzilor)
Pointerul this
-orice functie membru are pointerul this care arata catre obiectul asociat cu functia
-functiile prieten nu au acest pointer
-functiile statice nu au pointerul this