6.1. Declararea pointerilor spre obiectele unei clase
6.1. Declararea pointerilor spre obiectele unei clase
Cum declar?m pointeri pentru orice tip de date, putem declara pointeri pentru orice clas?. De exemplu:
fractie_rationala fr19(1, 2), fr20(2, 5);
fractie_rationala *p1, *p2=&fr19, *p3;
Aici p1, p2 ?i p3 sunt trei pointeri cu tipul de baz? fractie_rationala. Pointerul p2 a fost ini?ializat cu adresa obiectului fr19, pointerii p1 ?i p3 deocamdat? nu con?in nici o adres?, ?ns? atribuirea poate fi f?cut? ?n orice moment ?n mod obi?nuit pentru pointeri:
p1 = &fr20;
p3 = p2;
Pointerului p1 i-a fost atribuit? adresa obiectului fr20, pointerul p3 acum con?ine adresa obiectului fr19, fiindc? pointerului p3 i-a fost atribuit con?inutul pointerului p2.
Obiectele pot fi accesate prin intermediul pointerilor, ?n mod normal, folosind operatorul unar *. Astfel, *p1 reprezint? ?n cazul nostru referin?a la obiectul fr20, iar *p2 ?i *p3 reprezint? referin?ele la obiectul fr19. De aceea fragmentul:
cout << fr20 << ' ' << *p1 << endl;
cout << fr19 << ' ' << *p2 << ' ' << *p3 << endl;
va afi?a:
2/5 2/5
1/2 1/2 1/2
_________________________
Autorul: dr.conf. S. Pereteatcu
Оставить комментарий