..


Link-uri sponsorizate

Supraîncărcarea operatorilor new si delete in C + +

Articol scris de Damiano Verda
Pagina 1 din 2

Printre caracteristicile distinctive ale limbajului C + + decât alte limbaje de programare, cu siguranţă vom identifica posibilitatea de a extinde utilizarea mecanismului de operatori, de asemenea, supraîncărcate, în plus faţă de funcţiile sau metode a unei clase.

Într-un cuvânt, "supraincarcarea este, în general, un mecanism de diferenţiere funcţii cu acelaşi nume (şi fac de obicei o similare, dar nu identice), în funcţie de numărul şi tipul de parametri furnizate.
De exemplu, eu definesc două funcţii de imprimare, un generic (fără parametri), care imprimă o serie de informaţii prestabilite, şi un altul în care utilizatorul poate specifica prin stabilirea parametrilor în mod corespunzător, ce informaţii sunt de interes şi, prin urmare, să fie tipărite.

Funcţia de imprimare este, prin urmare, în acest caz, redefinit pentru a se potrivi diferitele informaţii furnizate de către introduse de utilizator. În mod similar, C + + vă permite să-şi redefinească operatorilor: ne gândim la operatori matematici "+", "-", "*" şi "/". Acesta poate fi interesant şi practice, de exemplu, redefini "+" se aplică în cazul în care operatorul nu numere, ci şiruri (seturi de caractere alfanumerice). În acest ultim caz, "suma" corespunde concatenare de siruri de caractere, de exemplu, dacă şirul este "Bună ziua" şi b în şirul de "lume", operaţiunea

 



 string c = a + b

 
conduce la crearea de c şir, a căror valoare este "Hello world".

"S supraîncărcate, şi, în special, supraîncărcarea operatorilor în C + + , sunt încă fiind trataţi într-un articol anterior, la care ne referim pentru o analiza ulterioara.

Ne propunem acum să ia în considerare, cu toate acestea, în special modul în care acest mecanism acelaşi lucru poate fi extinsă la alte tipuri de operatori si cat de util, în special prin trimitere la noii operatori şi a şterge, util pentru managementul memoriei.

Managementul memoriei

Operatorii new si delete sunt utile pentru managementul memoriei, în special pentru a rezerva şi atribui (sau alocarea) de memorie necesare pentru un obiect nou (noi) şi să elibereze (sau dealoca) memorie pentru o utilizare viitoare (şterge).

Un aspect foarte interesant de C + +, care se distinge de la C, este existenţa unor noi şi şterge, care permit, de exemplu cu privire la noi, pentru a calcula spaţiul necesar pentru fiecare obiect automat (în timp ce comanda echivalent C, malloc, impune programator pentru a specifica ceea ce este dimensiunea obiectului care urmează să fie alocate).

La acest punct este firesc să ne întrebăm ce ar putea fi utilitatea unui mecanism de supraincarcare, deoarece puterea de noi şi şterge este doar un mare folos general, se pare inutil să facă o nouă definiţie care să ia în considerare o serie de cazuri. Preţul unui operator este atât de generic, dar, cum se întâmplă adesea, o anumită lipsă a controlului. De exemplu, nu este posibil, folosind versiunea standard a noului operator, pur şi simplu a verifica dacă au existat probleme în alocarea de memorie necesar (de memorie este disponibil? Au fost alocate corect?). Pentru a depăşi această problemă se poate recurge la "supraîncărcată.

Deci, vom discuta acum cu un exemplu simplu, un caz de supraîncărcare noului operator, subliniind faptul că considerentele de date şi procedurile sunt valabile, chiar dacă doriţi să ştergeţi de la operatorul de supraîncărcarea.

În aceeaşi categorie ...
E-Learning
ASP (avansat) ASP (avansat)
Ciclu complet pentru crearea de site-uri Web dinamice. De la 39 €.
Javascript (Curs) Javascript (Curs)
Ghid complet pentru client-side scripting. De la 39 €.
Ruby şi Ruby on Rails (Curs) Ruby şi Ruby on Rails (Curs)
Crearea aplicatii software si web cu Ruby şi RoR. De la 39 €.
Link-uri sponsorizate