Documente Academic
Documente Profesional
Documente Cultură
2. Încapsularea – sau ascunderea informațiilor este mecanismul prin care se asigură faptul că
obiectele nu pot schimba direct starea internă a altor obiecte decât prin intermediul metodelor
puse la dispoziție de obiectul respectiv.
3. Moștenirea – mecanismul care permite crearea unor noi tipuri de date abstracte pornind de la
unele definite anterior.
4. Polimorfismul – abilitatea de a trata obiectele diferit în funcție de tipul sau clasa lor.
Abilitatea de a redefini metode în clasele derivate.
Care sunt diferențele dintre operatorul new și funcția malloc? (Continental Iași)
Răspuns:
1. Operatorul new returnează un pointer către tipul de dată alocat, pe când, funcția malloc
returneaza un pointer către tipul de dată void (sau pointer la obiect).
2. Operatorul new deduce dimensiunea tipului alocat, pe când funcția malloc trebuie să
primească numărul total de bytes ca parametru.
3. Operatorul new după alocarea memoriei, apelează constructorul clasei. (malloc nu)
O clasă care conține o metodă pur virtuală se numește clasă abstractă și nu poate fi instanțiată.
Corpul metodei pur virtuale (dacă se dorește instanțierea) trebuie definit în clasa derivată.
3. Care este diferența dintre o clasă pur virtuală și o clasă virtuală? (Continental Iași)
Răspuns: O clasă polimorfă poate fi instanțiată, pe când o clasă pur virtuală nu.
Pointerul este o variabila care contine o adresa de memorie.Aceasta variabila contine adresa unei
variabile.Avantaje:ofera posibilitatea de a modifica argumentele de apelare a functiilor
Permite o alocare dinamica a memoriei
Pot imbunatati efiecenta anumitor rutine
4. Care sunt specificatorii de acces și ce vizibilate au? (Cerner Brașov, Continental Iași)
Răspuns:
Specificator Clasa curentă Clasa derivată Accesibil prin obiect
public DA DA DA
protected DA DA NU
private DA NU NU
5. Care sunt diferențele dintre structură și clasă în C++? (Continental Iași, Cerner Brașov)
Răspuns:
1. Membrii unei clase sunt implicit ,,private”, iar la structură sunt ,,public”.
2. Într-o relație de moștenire, specificatorul de acces (: <specificator> Base) implicit în cazul
claselor este private iar în cazul structurilor este public.
Stivă - Toate variabilele declarate în interiorul funcției vor prelua memoria din stiva
Heap - Aceasta este memoria neutilizată a programului și poate fi utilizată pentru alocarea dinamică a
memoriei atunci când programul rulează.
11. Cum poți afla tipul unui obiect la runtime? (Cerner Brașov)
Răspuns: Cu funcția typeid(<obiect>). (Pentru ierarhii de clase: dacă obiectul este polimorfic).
class Animal
{
public:
Animal(){};
virtual ~Animal(){};
};
class Cat : public Animal{};
class Dog : public Animal{};
13. Cum poti inițializa o variabilă const sau referință non-statică, membră a unei clase? (Continental
Iași)
Răspuns: O variabilă const sau referință poate fi inițializată în lista de inițializare a
constructorului.
17. Scrie o funcție care alocă o matrice de numere întregi, folosind funcția malloc. (Continental Iași)
Răspuns:
int** allocMatrix(const int rows, const int cols)
{
int **pMatrix = (int**) malloc(sizeof(int*) * rows);
for(int i = 0; i < rows; i++)
{
pMatrix[i] = (int*) malloc(sizeof(int) * cols);
}
return pMatrix;
}