Class Punto
{
...
...
...
}
Punto* q; //dichiarazione di un puntatore "q" di tipo "Punto"
q=new Punto; //alloco spazio di memoria adatto a tipo "Punto" e restituisco a "q" l'indirizzo di memoria
Per accedere alle proprietà o ai metodi della Classe Punto tramite puntatore posso utilizzare due strumenti:
q -> ascissa=5; //operatore freccia
(*q).ordinata=7; //* è l'area di memoria puntata
Quando è necessario dichiarare un Array di puntatori invece utilizziamo la seguente sintassi:
q=new Punto[10]; //alloca 10 strutture, preleva il primo indirizzo dell'area puntata e lo assegna a q[0] - "q" punta ad un area contigua.
for(int i=0;i<10;i++)
{
q[i].ascissa=5+i;
q[i].ordinata=7+i;
}
in alternativa:
for(int i=0;i<10;i++)
{
*(q+i)=i; //dove "q" è l'indirizzo di partenza e "i" l'elemento
}
Per deallocare lo spazio assegnata ai puntatori utilizzeremo lo strumento "delete":
per un puntatore: delete q;
per un array di puntatori delete [10]Punto;
*!* Gli indirizzi puntati dagli Array sono salvati in un area di memoria chiamata +HEAP
Nessun commento:
Posta un commento