Jump to content
Forum Roportal
Sign in to follow this  
kingofyoursoul

Programare orientata pe obiecte..

Rate this topic

Recommended Posts

Salutare,

Am creat topicul asta pentru a cere ajutorul celor care "bijuteresc" softurile de programare de mai mult timp decat unii dintre noi care fac abia primii pasi.

Ca sa trecem la subiect , miercuri am examen la acest superb obiect si din lista ft luuunga a intrebarilor propuse pentru examen nu reusesc sa dau de cap catorva dintre ele:

1.Ce metode pot actiona asupra datelor membre statice.(ma gandeam metodele statice dar pare mult prea banal...in concluzie nu asta e rasp)

2Ce diferente se gasesc intre functiile prietene si metodele statice?

3. O clasa poate avea mai multi destructori?? Daca da,in ce conditii? ... in curs am citit ca una bucata clasa poate avea doar un destructor.... aici m-a bagat in ceata.

4Ce observatii puteti face in legatura cu aritatea unui operator si modul de supraincarcare al acestuia?

5 in cazul supradefinirii metodelor,cum se poate realiza selectia unei metode?

 

Pe la supraincarcarea operatorilor m-a cam pierdut,de aceea as dori,cine stie ca poate explica mai bine sa vina cu cateva informatii.(cursul este foarte prost structurat) :roll:

O zi buna va urez.

Share this post


Link to post
Share on other sites

ce cred eu:

1) depinde de atributul pe care il are data. Daca e publica aproape toate functiile o pot apela. Daca e privata o pot apela doar metodele din acea clasa. Daca e protected, doar metodele din clasa in care se afla si din clasele derivata.

2) functiile statice pot accesa doar membrii statici pe cand cele prietene pot accesa si pe ceilalti.

3) din cate stiu functia destructor nu returneaza un anumit tip si nici nu primeste parametrii. Deci daca ai 2 f. destr. vei avea doi membrii identici. cred ca nu se poate.

4) aritatea unui operator reprezinta numarul de argumente al acelui operator(de ex ++ este operator unar, + e binar). daca supraincarci un operator binar vei transmite un parametru, ptr cei unari niciun parametru. La functiile friend transmiti atatia parametri ca si tipul operatorului.

5) supradefinirea este suprascrierea sau overriding-ul. adica in clasa derivata se suprascrie o metoda din clasa de baza. Daca vrei sa apelezi metoda din clasa derivata: apelezi normal(d.metoda), daca vrei sa apelezi metoda din clasa de baza apelezi asa: d.b::metoda(d,b sunt instante ale derivatei si bazei si metoda este publica).

Share this post


Link to post
Share on other sites

Supraincarcarea operatoriilor....de exemplu daca ai o clasa fractie si ai

 

 

fractie a, b;

a = new fractie(......

b = new fractie(...... //a,b instante catre clasa fractie

 

 

 

Daca vrei sa aduni a+b si sa de-a rezultatul adunarii(sau altceva( in mod normal nu o sa mearg pentru ca nu are de unde sa se stie rezultatul. Daca supraincarci operatorul + printr-o metoda atunci aceasta metoda este apelata cand faci adunarea la 2 obiecte de tipul fractie iar rezultatul il modelezi tu sa iti returneze ce ai nevoie.

 

Se pot supraicnarca o gramada de operator, +,-,<, unari in forma pre/postfixata etc

Edited by Spiridus7

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×