Een slimme pointer is vergelijkbaar met een gewone desktop- pointer , dat is een programmeertaal data type, maar met verbeterde functies . Het apparaat kan vereenvoudigen C + + ontwikkeling , zoals het plan om het aantal bugs in verband met misbruik van reguliere pointers beperken . De wijzers bewaken objecten die ze hebben gewezen op voor geheugenbeheer . De garbage collector verzamelt gegevens van objecten die niet meer in gebruik door het programma . Deze functie vervangt de handleiding memory management , die vereist dat de exploitant op elk object dat moet worden deallocated en keerde terug naar het geheugen van de computer te selecteren . De slimme wijzer helpt ook bij grenscontroles , die controleert of een variabele binnen een gebonden voordat het wordt gebruikt . Instructies 1 Zorg ervoor dat u niet een ongeldige verwijzing telling , waarin een object te vroeg of nooit zou verwijderen hebben . Wijs een recent ontwikkelde bijvoorbeeld een slimme pointer en daar te houden . Nu , de smart pointer is eigenaar van het object . Je kunt het niet handmatig verwijderen of vervangen . Dit zal zorgen voor een object waarnaar wordt verwezen door een slimme pointer is niet per ongeluk verwijderd of gegeven een ongeldige referentie-telling . Kopen van 2 Gebruik een slimme pointer om uw code te verhogen . Schrijf ... _ptr mijn Ptr ( nieuw T ) als u uw eigen slimme aanwijzer te creëren . Gebruik ptr.get ( ) om de ruwe aanwijzer halen . Heb een T * een slimme pointer niet toewijzen . Je kan ook niet schrijven ptr = NULL . Daarvoor gebruikt ptr.reset ( ) . Twee objecten die verwijzen elkaar door een verwijzing tellen wijzer worden nooit verwijderd . Je moet ook nooit voor een tijdelijke shared_ptr doorgeven aan functies . Maak een variabele genaamd ( lokale ) plaats . Door dit te doen , zult u de veiligheid van uw code te verhogen . 3 Wijs de standaard auto_ptr smart pointer naar eenvoud . Het is vaak de beste keuze voor de lokale variabelen . Andere opties omvatten de klasse lid , maar je kunt auto_ptr toewijzen als een lid van de klas . EEN KOE wijzer op dit gebied kan de computer het geheugen opslaan . Een STL container kan worden toegewezen aan opgeschoond pointers om objecten op te slaan uit verschillende klassen in een container . Inzicht in de kenmerken van de specifieke garbage collection gebruikt . Verwijzing tellen /koppeling kan lekken wanneer een kringverwijzing wordt toegepast . Wanneer bijvoorbeeld een puntig object een pointer geteld , zal wijzen op een object dat de oorspronkelijke telde aanwijzer heeft . Deze techniek , wanneer juist gebruikt , is eenvoudig en deterministisch .
|