Puntatori in linguaggi di programmazione come C + + servire come riferimenti alla memoria allocata dinamicamente nella memoria di sistema durante l' esecuzione del programma. Tuttavia, questa memoria può essere dimenticato durante eventi in programma , causando una " perdita di memoria " dove la memoria allocata sorpassa rapidamente memoria di sistema . A causa di questo , è necessario gestire i puntatori bene , e sempre cancellarli. Il tipo di dati " auto_ptr " aiuta a prendersi cura di questo per voi , cancellando la memoria allocata quando l'oggetto auto_ptr viene eliminato . Si può facilmente implementare la propria sintassi auto_ptr per gestire i puntatori come meglio credi . Cose che ti serviranno
C + + Compiler
Mostra più istruzioni
1
creare una classe " auto_ptr " . Il nome " SmartPointer " :
template class SmartPointer {
}
2
Includere un tipo di dati puntatore nella classe :
template class SmartPointer {
privato : T * inner_pointer ; }
3
Creare un costruttore per la classe puntatore intelligente , che assegna un riferimento al puntatore :
template class SmartPointer {
pubblico : SmartPointer ( T di riferimento);
privato : T * inner_pointer ; } ;
template SmartPointer :: Smartpoint ( T riferimento ) { inner_pointer = riferimento ; }
4 Creare un distruttore per la classe , che cancellerà il contenuto del puntatore a memoria , molto simile alla " auto_ptr " tipo :
template class SmartPointer {
pubblico : SmartPointer ( T di riferimento); ~ SmartPointer ( ) ;
privato : T * inner_pointer ; };
template SmartPointer :: Smartpoint ( T riferimento ) { inner_pointer = riferimento ; }
template SmartPointer :: ~ SmartPointer ( ) { delete inner_pointer ; }