12.07.2015 Views

Cursul POO - Informatica aplicata si programare - Universitatea ...

Cursul POO - Informatica aplicata si programare - Universitatea ...

Cursul POO - Informatica aplicata si programare - Universitatea ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

32Curs 1-2. Să ne reamintim …În acest caz, clasa punct_colorat este derivată privat din clasa punct_plan.Dacă vom compila în acest caz programul, vom observa o mulŃime de erori, datoratefaptului că toŃi membrii publici moşteniŃi din clasa de bază, accesaŃi prin intermediulobiectului de clasă derivată privat se comportă ca şi cum ar fi fost privaŃi în clasa debază. Aceasta este deosebirea dintre moştenirea publică şi cea privată: un obiect alunei clase derivate public păstrează tipul de acces al membrilor moşteniŃi din clasade bază în mod identic. Un obiect al unei clase derivate privat, transformă toŃimembri moşteniŃi din clasa de bază în membrii privaŃi. Acest fapt este <strong>si</strong>ntetizat întabelul 1.1, care prezintă po<strong>si</strong>bilitatea accesului direct al unui membru al claseiderivate:Tabelul 1.1Drept de acces înclasa de bazăpublicprotectedprivateSpecificator de acces(tip moştenire)publicAcces în clasaderivatăacce<strong>si</strong>bilacce<strong>si</strong>bilinacce<strong>si</strong>bilAcces în afara claselorde bază şi derivatăacce<strong>si</strong>bilinacce<strong>si</strong>bilinacce<strong>si</strong>bilpublicprotectedprivateprivateacce<strong>si</strong>bilacce<strong>si</strong>bilinacce<strong>si</strong>bilinacce<strong>si</strong>bilinacce<strong>si</strong>bilinacce<strong>si</strong>bil1.3.1 Constructorii şi destructorii claselor aflate în relaŃia de moştenireEste interesant de văzut care este ordinea şi modalităŃile de apel a constructorilorşi destructorilor în cazul moştenirii. Regula este următoarea:• în cazul constructorilor, se apelează mai întâi constructorul clasei de bază, şi apoiconstructorul clasei derivate. Apelarea constructorului clasei de bază se faceimplicit, dacă este po<strong>si</strong>bil şi dacă constructorul clasei de bază nu este apelatexplicit în clasa derivată;• în cazul destructorilor, se apelează mai întâi destructorul clasei derivate, şi apoidestructorul clasei de bază;Pentru a lămuri această problemă, să modificăm programul astfel încât să definimexplicit constructorii şi destructorii, iar în programul principal să declarăm douăobiecte:class punct_plan{...public:punct_plan(){ cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!