Pointeri la obiecte în c, purecodecpp

Pointeri la obiecte în c, purecodecpp
Când ne-am întâlnit pentru prima dată cu indicii în C ++ (a se vedea. Pointeri în C ++. Partea 1) nu poate fi o reprezentare simplificată a ceea ce indicii pot indica numai variabile individuale încorporate tipuri (scalare) de C ++, și este doar o altă formă alternativă de acces la astfel de variabile . Într-o astfel de cerere indicii ar fi un plus frumos de limbaj, dar cu o capacitate foarte limitată.

Luați în considerare astfel de realizări mai în detaliu. Cea mai simplă opțiune este de a utiliza indicii pentru obiecte complexe (obiecte de clase și structuri). Dar o astfel de utilizare a indicii deschide perspective largi în C ++, după cum vom vedea.

Pointeri la obiecte. listarea 1

Această nouă clasă de designerul meu. ci prin crearea unui parametru. Când apelați-l numește constructorul clasei părinte (numărul (amorțite)). dându-i aceeași valoare. Următoarele paranteze <> încadrată de un bloc gol de cod, ceea ce nu înseamnă nimic mai mult dincolo de apel nu trebuie să facă constructorul părintelui. Amintiți-vă că întreaga secvență a constructorilor tuturor claselor părinte - numite (în ordine inversă succesiunii) la apelarea generată de constructorul clasei, dar este numai pentru constructor fără argumente. În cazul constructorilor parametrizate rodieley va trebui să invoce în mod explicit.

Dar ne vom abate de la subiectul discuției noastre ... Și acum e timpul pentru a compila și a vedea programul care le-am primit:

Pointeri la obiecte în c, purecodecpp

Până acum nimic nou, și totul este la fel ca modul în care am lucrat cu un pointer la o variabilă de tip dublu. spun.

Reamintim, în plus, faptul că noul operator pentru a crea dinamic un obiect nou:

a) face ca managerul dinamic de management al memoriei și alocă un nou volum pentru plasarea obiectului;

b) invocă constructorul unei clase corespunzătoare (tip de date) pentru marcare inițială (inițializarea) memoria alocată. modificăm puțin exemplul (fișier ex2.cc):

Pointeri la obiecte. listarea 2

Acest exemplu simplu arată că în modelul obiect al C ++ se numește polimorfism. Și această proprietate este una dintre cele mai puternice instrumente de exprimare a limbajului C ++. Și această tehnică se realizează întotdeauna prin pointeri la obiecte (figura *).

Iată cum va arăta elaborarea și punerea în aplicare a exemplului nostru (ex3.cc) la terminalul sistemului de operare Linux atunci când se utilizează compilatorul GCC cu limbajul C ++ (aceasta este încă o dată dovada că C ++ limbaj de programare, în cel mai puțin dependent de sistemul de operare):

Pointeri la obiecte în c, purecodecpp

Referindu-ne din nou la exemplul de cod prezentat și servesc pentru a fixa foarte important faptul că indicatoarele sunt întotdeauna tastat C ++. Indicele nu poate fi „un pointer la ceva.“ Limba C ++ - este un limbaj cu un nume puternic tastat. Tastați indicatorul este un indicator pentru a indica tipul de variabile ea, cum ar fi „pointer la dublu». Trimiteri către diferite tipuri sunt reciproc incompatibile cu atribuirea și compararea.

Tehnologie funcții virtuale și polimorfism sunt atât de importantă pentru întreaga filozofie a limbajului C ++, care necesită o analiză detaliată separată. Despre această discuție într-una din următoarele lecții.

În scopul de a menține site-ul nostru - click pe cutia de monede și alege orice mod convenabil.

Dar îți place ce te-ai dus brusc la polimorfismului. Nu e rău, dar utilizatorii care au citit doar site-ul dvs. este acum puțin că este clar. Înainte de aceasta, descriind clasele pe care nu scrie despre funcțiile virtuale, și chiar și despre moștenirea. Și apoi, dintr-o dată a căzut la cititor toate acestea și abstracte clase.

La finalul articolului pe care îl descrie polimorfism - Cred că merită un articol separat. Dar înainte de asta, pentru a scrie un articol despre „moștenirea de clasă în C ++» (acesta este ultimul subiect în planul dvs. de pe pagina principală)

admin.