Documente Academic
Documente Profesional
Documente Cultură
Exemplu intrebari grila: Care dintre afirmatiile de mai jos este falsa a. Constructorii au acelaţi nume ca şi
numele clasei căreia îi aparţin; b. Constructorii nu întorc nici o valoare (din corpul lor lipseşte
intrucţiunea return; în antetul constructorilor nu se specifică niciodată - la tipul valorii returnate -
cuvântul cheie void); c. Constructorii unei clase nu pot primi ca parametri pointeri sau referinţe la
instanţele clasei respective , ci doar instanţe ale clasei respective; d. Apelul constructorului se realizează
la declararea unui obiect; ………………………………. Functiile prietene sunt: a. functii ne-membre ale unei
clase, care au acces la datele membre private ale unei clase b. functii membre ale unei clase, care au
acces la datele membre private ale unei clase c. functii ne-membre ale unei clase, care nu au acces la
datele membre private ale unei clase d. functii membre ale unei clase, care nu au acces la datele
membre private ale unei clase ………………………. Care dintre afirmatiile de mai jos este falsa: a.
Destructorul are acelaşi nume ca şi clasa a căror metodă este; b. Numele destructorului este precedat
de semnul ~; c. O clasă are un singur destructor; d. Destructorul are cel putin un parametru şi nu
returnează nici o valoare ……………………. Prezenţa funcţiilor ________ anunţă compilatorul să nu mai
genereze instrucţiunile în cod maşină necesare apelului şi revenirii, ceea ce conduce la mărirea timpului
de compilare în favoarea micşorării timpului de execuţie. a. membre b. inline c. prietene d. apelate
……………………… Membrii unei clase sunt: a. datele membre si functiile inline b. functiile inline si funtiile
prietene c. metodele si functiile prietene d. datele membre si metodele ……………………. Dacă
supraîncărcăm acelaşi operator printr-o metodă şi printr-o funcţie prietenă, funcţia prietenă va avea,
întotdeauna: a.un parametru mai putin faţă de metodă b. un parametru în plus faţă de metodă c. doi
parametri mai putin faţă de metodă d. doi parametri în plus faţă de metodă ………………………… Operatorii
_______ pot fi supradefiniţi printr-o funcţie membră nestatică (fără parametri expliciţi) sau printr-o
funcţie prietenă cu un parametru explicit de tipul clasă. a. binari b. unari c. tertiari d. this
………………………….. În cazul în care supraîncărcarea standard este insuficientă, se poate supraîncărca
operatorii prin metode (implicit!): a. statice. b. standard c. explicite
………………………… ///////////////////////////////////////////////////////////////////////////////////////////
//
N2 -> Test Aplicativ 10 intrebari (20 – 25 min) 7-8 din intrebari sunt din (asemanatoare cu) intrebarile
de mai jos
C1 1. Ce este încapsularea?
2. Ce este moştenirea?
3. Ce este polimorfismul?
8. Ce este o referinţă ?
9. Referinţa este un pointer?
C2
7. Care sunt deosebirile între o funcţie membră a unei clase şi o functie prietenă a unei clase?
8. Ce fel de metode pot acţiona asupra datelor membre statice ale unei clase?
11. Ce observaţie aveţi în legătură cu metodele definite în interiorul clasei şi funcţiile inline?
12. O clasă poate fi prietenă a altei clase ? Dacă da, ce înseamnă acest lucru?
15. Constructorii unei clase pot primi ca parametri instanţe ale clasei respective? Dacă da, în ce condiţii?
16. Cine impune comportamentul unui obiect?
17. Cum se alocă memoria pentru datele membre nestatice în momentul declarării mai multor obiecte
din aceeasi clasă?
28. O clasă poate avea mai mulţi desctructori? Dacă da, în ce condiţii?
31. Nici funcţiile prietene, nici metodele statice ale unei clase nu primesc ca argument implicit pointerul
this. Explicaţi care sunt, totuşi, diferenţele dintre ele.
C3
3. Cum se realizează conversia din tip predefinit în clasă? În ce situaţii se realizează conversiile implicite?
4. Ce restricţii impune mecanismul de supraîncărcare a operatorilor?
5. Cum se poate realiza conversia dintr-un tip abstract (clasă) într-un tip predefinit? Exemplu.
6. Ce observaţii puteţi face în legatură cu aritatea unui operator şi modul de supraîncărcare a acestuia?
7. În cazul supraîncărcării metodelor, cum se poate realiza selecţia unei metode ?
C4
3. Destructorii se moştenesc?
9. Funcţiile virtuale pot fi membrii statici ai clasei din care fac parte ?
10. Redefinirea unei funcţii virtuale într-o clasă derivată este similară cu supraîncărcarea funcţiei
respective? Argumentaţi răspunsul.
11. Destructorii pot fi metode virtuale?
C5
3. Ce sunt manipulatorii?
……………………………….
…………………………………………….
/////////////////////////////////////////////////////////////////////
Aranjati liniile de cod astfel incat sa se obtine rezultatul urmator: Rezultat: B::f(1) B::f(1) B::f(1) Cod:
int main(){
int i; B b[] = { B(), D1(), D2()}; for (i=2;i>=0;i--) {b[i].f();} } class D1: public B{ public: void f()
{ cout<<"D1::f(3) ";} }; class B { public: virtual void f() { cout<<"B::f(1) ";} }; class D2: public B{ public: void
f() { cout<<"D2::f(2) ";} }; ||||||||||||||||||||||||||||||||||||||||||||||||||||
Aranjati liniile de cod astfel incat sa se obtine rezultatul urmator: Rezultat: A aparut o eroare. Exceptia
Nr. 20 Cod: try { throw 20; } catch (int e) { cout<<"Exceptia Nr. " << e << "\n"; cout << "A
aparut o eroare." ; cout<<"\n"; } int main () { return 0; }
||||||||||||||||||||||||||||||||||||||||||||||||||||
Aranjati liniile de cod astfel incat sa se obtine rezultatul urmator: Rezultat: A() A(ct A&) A(i,i) A(i,i) A(i,i)
~A~A~A~A~A Cod: class A { public: A(){cout<<"A()\n";} A(int n,int m=0){cout<<"A(i,i)\n";} A(const A &o)
{cout<<"A(ct A&)\n";} ~A(){cout<<"~A";} }; int main(){ A a3=1;
In principiu sunt intrebari din subiectele primite la probele N1 si N2, si in plus de recunoscut un prototip,
o supraincarcare, declarare: clasa, static, virtual etc…