Sunteți pe pagina 1din 3

Intrebari examen C++

Cunostinte fundamentale - promovarea examenului este


conditionata de raspunsul corect la oricare din aceste intrebari
1.

Cat ocupa o variabila de tip int (se ia un considerare un compilator din VS2013 pe
32/64 de biti): 4 bytes
2.
Cat ocupa o variabila de tip short int (se ia un considerare un compilator din VS2013
pe 32/64 de biti): 2 bytes
3.
Cat ocupa o variabila de tip long int (se ia un considerare un compilator din VS2013
pe 32/64 de biti): 4 bytes
4.
Cat ocupa o variabila de tip long long int (se ia un considerare un compilator din
VS2013 pe 32/64 de biti): 8 bytes
5.
Cat ocupa o variabila de tip bool (se ia un considerare un compilator din VS2013 pe
32 de biti): 1 byte
6.
Cat ocupa o variabila de tip float (se ia un considerare un compilator din VS2013 pe
32 de biti): 4 bytes
7.
Cat ocupa o variabila de tip double (se ia un considerare un compilator din VS2013
pe 32 de biti): 8 bytes
8.
Cat ocupa o variabila de tip long double (se ia un considerare un compilator din
VS2013 pe 32 de biti): 8 bytes
9.
Cat ocupa o variabila de tip char (se ia un considerare un compilator din VS2013 pe
32 de biti): 1 byte
10.
Cat ocupa o variabila de tip pointer la int - int *(se ia un considerare un compilator
din VS2013 pe 32 de biti): 4 bytes
11.
Cat ocupa o variabila de tip pointer la char- char *(se ia un considerare un compilator
din VS2013 pe 32 de biti): 4 bytes
12.
Ce reprezinta cuvantul cheie this in C++: Pointer continut de orice obiect ce contine
adresa acelui obiect
13.
Ce reprezinta this in constructor: Pointer ce contine adresa obiectului apelator al
functiei membre
14.
Ce reprezinta this in destructor: Pointer ce contine adresa obiectului apelator al
functiei membre
15.
Ce reprezinta this intr-o functie membra: Pointer ce contine adresa obiectului
apelator al functiei membre
16.
Ce reprezinta this intr-o functie statica: error C2355: this + error C2227: left of ->,
prima eroare se refera la faptul ca this nu este apelabil decat in functii non-statice (cele
statice nu primesc parametrul explicit this), iar a doua eroare este pentru ca in stanga
sagetii -> (ce reprezinta de fapt ( *). ) nu exista pointer catre o clasa/structura/un union/un
tip generic
17.
Ce este o functie membra: functii ale unei clase, ce primesc parametrul explicit this
18.
Ce este o functie statica: functii ale unei clase, ce NU primesc parametrul explicit
this
19.
Ce este un atribut static: camp al clasei ce actioneaza ca o variabila globala, acesta
este vizibil in orice scope si nu este distrus cand se iese din scope-ul clasei; accesare prin
numele clasei, nu prin obiectele create

20.
21.

Ce este un atribut constant: camp ce nu poate fi modificat


Cand se poate initializa un atribut constant: cand este construit obiectul, sau direct
unde este declarat atributul;
22.
Ce reprezinta supraincarcarea: supraincarcarea functiilor reprezinta procesul de a
redefini cum functioneaza functiile mostenite, avand aceeasi descriere; scope-uri diferite;
23.
Care este utilitatea supraincarcarii: pentru a putea folosi functiile in conformitate cu
obiectele clasei in care se afla functiile supraincarcate apelate; acelasi nume de functie ce
se comporta diferit in functie de tipul obiectului; antetele trebuie sa fie identice; runtime
24.
Ce reprezinta supradefinirea: supradefinirea functiilor reprezinta procesul de a defini
noi functii cu acelasi nume, insa cu antet diferit: difera tipul sau numarul parametrilor, tipul
rezultat NU diferentiaza antete; nu conteaza daca sunt mostenite sau nu, toate se afla in
acelasi scope; compile time
25.
Care este utilitatea supradefinirii: ofera flexibilitate cand vine vorba de functii carora
vrem sa le pasam combinatii diverse de parametrii
26.
Ce este o functie virtuala: o functie ce ne asteptam sa fie redefinita; in cazul in care
avem o situatie in care compilatorului nu ii este precizat clar ce versiune sa foloseasca,
functia virtuala ne permite ca obiectele derivate sa foloseasca functia redefinita; o functie
virtuala pura reprezinta doar o definitie a antetului functiei, urmat de = 0; , lucru ce
inseamna ca acea functie TREBUIE redefinita in clasele derivate; de asemenea, clasele ce
contin cel putin o metoda virtuala pura se numesc clase abstracte de baza (Abstract Base
Class)
27.
Prin ce se implementeaza conceptul de Polimorfism: folosind ABS
28.
Care sunt modificatorii de acces si ce vizibilitate ofera datelor/functiilor membre in
cazul derivarii claselor: private - atribute accesibile DOAR din interiorul clasei sau
obiectelor, NU si din cele derivate; protected - atribute accesibile doar din interiorul
obiectelor, clasei, cat si cele derivate si public - atribute accesibile de oriunde din scope-ul
in care e definita clasa
29.
In ce context este util modificatorul de acces private: cand nu dorim ca alti utilizatori
sau functii sa poata accesa direct acele atribute sau functii membre (si sa le manipuleze
dupa voia lor, modifice etc) IN SPIRITUL PRINCIPIULUI INCAPSULARII
30.
Care sunt tipurile de constructori in cadrul unei clase si ce rol are fiecare: default creare obiect initializare campuri (atentie la pointer!), parametrii idem, costructor de copiere
- apelat cand se creeaza parametrii unei functii si cand se declara o noua instanta astfel:
nume_clasa nume_obiect(nume_obiect_deja_creat); sau nume_clasa nume_obiect =
nume_obiect_deja_creat;
31.
Care este diferenta intre rolul operatorului = si cel al constructorului de copiere:
operatorul = este folosit in situatia in care cele doua obiecte sunt deja create: ob1 = ob2;
32.
Cand este apelat constructorul de copiere: vezi mai sus
33.
Cand este apelat operatorul =: vezi mai sus
34.
Ce este un memory leak: situatia in care nu dezalocam spatiul alocat; pointerii pot
primi noi adrese, insa fostul spatiu alocat din heap ramane blocat pana la sfarsitul rularii
programului
35.
Ce este un dangling pointer: situatia in care un pointer indica o zona de memorie
inexistenta, de exemplu atunci cand un pointer primeste adresa unei variabile ce este
distrusa cand se iese din scope-ul ei
36.
Care este rolul destructorului: (daca e scris bine) sa distruga obiectele cand este
apelat, cu alte cuvinte sa dezaloce spatiul alocat pentru obiectele respective
37.
Cand se apeleaza destructorul: la sfarsitul programului sau scope-ului in care sunt
create obiectele respective

38.

Ce este memoria HEAP: zona din RAM de unde programele isi pot rezerva bucati
de memorie
39.
Cum se aloca spatiu de memorie in HEAP: cu operatorul new sau functia malloc se
returneaza adresa de memorie de unde incepe un bloc continuu de dimensiunea ceruta,
zona de memorie blocata unde nu au acces alte programe sau procese
40.
Cum se elibereaza memoria in HEAP: cu operatorul delete sau functia free se
elibereaza memoria alocata, aceasta putand fi suprascrisa si folosita de alte instante
41.
Cum se genereaza un memory leak: pointerul ce indica o zona de memorie alocata
primeste alta valoare si nu avem cum sa mai dezalocam acea zona de memorie alocata
42.
Care este rolul functiilor accesor: in cadrul clasei interfata publica prin care putem
primi valorile atributelor private, fara insa a le putea modifica
43.
Ce rol au functiile friend in cadrul claselor si care sunt caracteristicile acestora:
functiile declarate friend au acces la zona privata a clasei, insa nefiind functii membre, nu
primesc parametrul explicit this
44.
Ce reprezinta conceptul de incapsulare: concept al programarii orientate obiect ce
presupune izolarea atributelor obiectelor de mediul apelant; incapsularea este un "contract"
prin care obiectul isi protejeaza functionarea fata de modulul apelant.

Cunostinte suplimentare - utilizate pentru rotunjirea notei


1.
2.
3.
4.
5.
6.
7.

Care este ordinea de apel a constructorilor in cadrul ierarhiilor de clase:


descendent, de la clasa/-ele de baza spre clasele derivate
Care este ordinea de apel a destructorilor in cadrul ierarhiilor de clase: ascendent,
de la clasele derivate catre clasa/-ele de baza
Ce rol au functiile virtuale in cadrul ierarhiilor de clase stabilesc: in clasa de baza un
sablon de functie default ce poate fi suprascrisa (supraincarcata) in clasele derivate
Ce este o functie virtuala pura: =0; => ABS
Ce este o clasa abstracta: -- -Ce restrictii impune o clasa abstracta: nu pot fi instantiate obiecte de tipul abs, doar
derivate
Cum se realizeaza mostenirea multipla in C++: class NumeClasa :
ListaClaseDeBaza, unde ListaClaseDeBaza este: SpecificatorAcces NumeClasaDeBaza, ...
SpecificatorAccess: private, protected sau public
8. Ce sunt functiile inline: inline ii spune compilatorului sa incerce sa copieze functia
acolo unde este apelata ca si cum am scrie-o de mana de fiecare data cand o
apelam; efect: economie de timp si de spatiu, deoarece nu este adaugata la stack
functia, cu toti parametrii, ca apoi sa fie executata functia si apoi eliberat stack-ul;
creste dimensiunea sursei ( si implicit a codului obiect )
8. Ce reprezinta conceptul de is a: o clasa mosteneste o clasa parinte
8. Ce reprezinta conceptul de has a: o clasa contine un atribut de tipul celeilalte clase

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