Inițializare (programare) - Initialization (programming)

În programarea computerizată , inițializarea (sau inițializarea) este atribuirea unei valori inițiale pentru un obiect de date sau o variabilă. Modul în care se efectuează inițializarea depinde de limbajul de programare , precum și de tipul, clasa de stocare etc. a unui obiect care trebuie inițializat. Construcțiile de programare care efectuează inițializarea se numesc de obicei inițializatoare și liste de inițializatoare . Inițializarea este distinctă de (și precedată de) declarație , deși cele două pot fi uneori combinate în practică. Complementul inițializării este finalizarea , care este utilizată în primul rând pentru obiecte, dar nu pentru variabile.

Inițializarea se face fie prin încorporarea statică a valorii la momentul compilării, fie prin alocarea la timpul de execuție . O secțiune de cod care efectuează o astfel de inițializare este, în general, cunoscută sub numele de „cod de inițializare” și poate include alte funcții, o singură dată, precum deschiderea fișierelor; în programarea orientată obiect , codul de inițializare poate face parte dintr-un constructor (metoda clasei) sau un inițializator (metoda instanței). Setarea unei locații de memorie la zero hexazecimale este, de asemenea, uneori cunoscută sub numele de „curățare” și este adesea efectuată de o instrucțiune exclusivă sau (ambii operanzi specificând aceeași variabilă), la nivelul codului mașinii , deoarece nu necesită acces suplimentar la memorie.

C familie de limbi

Inițializator

În C / C99 / C ++, un inițializator este o parte opțională a unui declarator . Se compune din caracterul „=” urmat de o expresie sau o listă de expresii separate prin virgule plasate între paranteze (paranteze). Ultima listă este uneori numită „listă de inițializatoare” sau „listă de inițializare” (deși termenul „listă de inițializatoare” este rezervat formal pentru inițializarea membrilor clasei / structurilor în C ++; vezi mai jos ). O declarație care creează un obiect de date, în loc să descrie doar existența sa, este denumită în mod obișnuit o definiție .

Mulți consideră că este convenabil să se facă o distincție între termenii „declarație” și „definiție”, ca în expresia frecvent văzută „distincția dintre o declarație și definiție ...”, ceea ce înseamnă că o declarație desemnează doar un obiect de date (sau o funcție) ). De fapt, conform standardului C ++ , o definiție este o declarație. Cu toate acestea, utilizarea „declarațiilor și definițiilor”, deși este în mod formal incorectă, este comună. Deși toate definițiile sunt declarații, nu toate declarațiile sunt definiții.

Exemple C:

int i = 0;
int k[4] = {0, 1};
char tx[3] = 'a';
char ty[2] = 'f';
struct Point {int x; int y;} p = { .y = 13, .x = 7 };

Exemple C ++:

int i2(0);
int j[2] = {rand(), k[0]};
MyClass* xox = new MyClass(0, "zaza");
point q = {0, i + 1};

Lista inițializatorilor

În C ++, un constructor al unei clase / structuri poate avea o listă de inițializatoare în cadrul definiției, dar înainte de corpul constructorului. Este important să rețineți că atunci când utilizați o listă de inițializare, valorile nu sunt atribuite variabilei. Ele sunt inițializate. În exemplul de mai jos, 0 este inițializat în re și im. Exemplu:

struct IntComplex {
  IntComplex() : re(0), im(0) {}

  int re;
  int im;
};

Aici, constructul  : re(0), im(0)este lista inițializatorului.

Uneori, termenul „listă inițializatoare” este, de asemenea, utilizat pentru a se referi la lista de expresii din inițializatorul matricei sau structurilor.

C ++ 11 oferă un concept mai puternic de liste de inițializatoare , prin intermediul unui șablon, numit std :: initializer_list .

Inițializare implicită

Inițializarea datelor poate avea loc fără o sintaxă explicită într-un program pentru a face acest lucru. De exemplu, dacă variabilele statice sunt declarate fără inițializator, atunci cele ale tipurilor de date primitive sunt inițializate cu valoarea zero a tipului corespunzător, în timp ce obiectele statice de tip clasă sunt inițializate cu constructorii lor impliciti .

Vezi si

Referințe