Structuri — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

Nivelul 4 — Clase

Structuri

Note originale de SunDiaL · Vezi sursa în engleză

O structură este identică cu o clasă, cu diferența că este un tip valoare. În 95% dintre cazuri vei folosi o clasă, așa că iată doar cum definești o structură și un tabel cu diferențele dintre ele.

Definirea unei structuri

struct ThisIsMyStructNameForRealz
{

}

Diferența dintre clasă și structură

Caracteristică Structuri Clase
Tip Tipuri valoare, stocate pe stivă Tipuri referință, stocate în heap, cu o referință pe stivă
Alocarea memoriei Alocare/dezalocare mai rapidă pentru structuri de date mici Au costuri suplimentare, dar oferă mai multă flexibilitate pentru obiecte complexe
Moștenire Nu pot moșteni alte structuri sau clase (pot doar implementa interfețe) Acceptă moștenirea, permițând ierarhii de clase
Comportamentul la atribuire Copiază toate datele când sunt atribuite unei variabile noi Copiază doar referința; ambele variabile indică același obiect
Constructori impliciți Au constructori impliciți fără parametri, care inițializează câmpurile cu valorile implicite Necesită constructori expliciți fără parametri, dacă aceștia sunt necesari
Când sunt potrivite Structuri de date mici și simpleDurată de viață scurtă a obiectuluiObiectul nu va fi modificat după creareSe dorește semantică de valoare (copiere la atribuire)Eficiența memoriei este esențială Obiecte complexe, cu comportamenteEste necesară moștenireaObiectul are nevoie de semantică de referințăObiectul va fi modificat după creareObiectul poate fi null
Exemple Coordonate de puncte, date calendaristice, culori, obiecte matematice mici Entități de domeniu, servicii, controlere, componente de interfață