Documente Academic
Documente Profesional
Documente Cultură
Curs 03 - Alocare Dinamica. Date Si Functii Statice
Curs 03 - Alocare Dinamica. Date Si Functii Statice
n operatorul new pentru alocarea dinamică de tablouri n Alocare spațiu pentru un singur obiect
idPointer = new tip[dim_max];
idPointerObiect = new IdClasa(lista_de_parametri);
alocă un spațiu de memorie în heap pentru a reține un tablou
de dim_max elemente de tipul tip alocă un spațiu de memorie în heap pentru a reține
n exemplu un obiect de tipul IdClasa pentru inițializarea acestuia
float *t; apelându-se constructorul clasei cu parametri
t= new float[10]; lista_de_parametri
t[0]=2.3; Dacă lista de parametri e vidă atunci se apelează
t[1]=7.2; constructorul implicit
n operatorul delete eliberează zonele alocate dinamic n Alocare spațiu pentru un tablou de obiecte
delete idPointer; idPointerObiect = new IdClasa[dim_max];
delete []idPointerTablou;
n exemplu alocă un spațiu de memorie în heap pentru a reține
int *p = new int; un tablou de dim_max obiecte de tipul IdClasa, pentru
float *t = new float[10]; inițializarea acestora apelându-se de dim_max ori
... constructorul implicit.
delete p; n Dacă nu există un constructor implicit se generează
delete []t; eroare în momentul compilării
int main(){
Punct *p1 = new Punct;
Punct *p2 = new Punct(3,4);
Punct *t = new Punct[3];
delete p1;
delete p2;
printf("Eliberez tabloul:\n");
delete []t;
Alocarea dinamică de memorie. getch(); Alocarea dinamică de memorie.
Date și funcții statice. 9 } Date și funcții statice. 11
};
static tip idMetodaStatica(lista_de_parametri); ce au acces la datele membre dintr-o
tip IdCasa::idMetodaStatica(lista_de_parametri){
…
clasă fără însă a putea modifica valorile
} acestora
n Utilizare
IdClasa:: idMetodaStatica(lista_de_parametri); // Recomandat
n Pot apela numai funcţii membre
idObiect.idMetodaStatica(lista_de_parametri);
idPointerObiect -> idMetodaStatica(lista_de_parametri);
constante
}
p2.afisare();
}
Parametri constanţi
Apel constructor Punct
Apel constructor Punct
Output: Apel constructor Vector
Lungime:5
Apel destructor Vector
Apel destructor Punct Alocarea dinamică de memorie.
Apel destructor Punct Date și funcții statice. 21
Temă
n Sa se implementeze clasa Matrice în care
elementele sunt reprezentate sub forma unui
tabel unidimensional alocat dinamic.
n Să se implementeze clasa DataCalendaristica
care să permită afişarea datei sub mai multe
formate (25.07.2019, 25 iulie 2019). Să se
implementeze o metodă care calculează
diferența dintre două date calendaristice
Alocarea dinamică de memorie.
Date și funcții statice. 22