Qt-dokumentasjon.

Qt-dokumentasjon.

QScopedPointer-klassen lagrer en peker til en dynamisk tildelt objekt, og sletter den ved odeleggelse. Mer.

Merk: Alle funksjoner i denne klassen er reentrant.

Offentlige funksjoner.

Beslektede ikke-medlemmer.

Detaljert beskrivelse.

QScopedPointer-klassen lagrer en peker til en dynamisk tildelt objekt, og sletter den ved odeleggelse.

Administrere heap tilordnede gjenstander manuelt er vanskelig og feilproblemer, med det felles resultat som kodes lekkasjer og er vanskelig a vedlikeholde. QScopedPointer er en liten verktoysklasse som forenkler dette kraftig ved a tildele stakkbasert minneeiendom til heapallokeringer, mer generelt kalt ressursinnsamling er initialisering (RAII).

QScopedPointer garanterer at objektet pekte pa vil bli slettet nar det nav rende omfanget forsvinner.

Tenk pa denne funksjonen som gjor heapallokeringer, og har forskjellige utgangspunkter:

Det er besvimlet av de manuelle slettingene. Med QScopedPointer kan koden forenkles til:

Koden kompilatoren genererer for QScopedPointer er den samme som nar man skriver den manuelt. Kode som bruker sletting er kandidater til bruk av QScopedPointer (og hvis ikke, muligens en annen type smart peker som QSharedPointer). QScopedPointer har med vilje ingen kopi-konstruktor eller oppdragsoperator, slik at eierskap og levetid klart kommuniseres.

Const-kvalifikasjonen pa en vanlig C ++-peker kan ogsa uttrykkes med en QScopedPointer:

Tilpassede oppryddingshandterere.

Arrays samt pekere som er blitt tildelt med malloc ma ikke slettes ved a slette. QScopedPointers andre malparameter kan brukes til tilpassede oppryddingshandterere.

Folgende egendefinerte opprydningshandteringsprogrammer finnes:

QScopedPointerDeleter – standard, sletter pekeren ved a slette QScopedPointerArrayDeleter – sletter pekeren ved a slette []. Bruk denne handteringen til pekere som ble tildelt med ny []. QScopedPointerPodDeleter – sletter pekeren ved hjelp av gratis (). Bruk denne handteringen til pekere som ble tildelt med malloc (). QScopedPointerDeleteLater – sletter en peker ved a kalle deleteLater () pa den. Bruk denne handteringen til a peke pa QObject’s som deltar aktivt i en QEventLoop.

Du kan besta dine egne klasser som handterere, forutsatt at de har en offentlig statisk funksjon, ugyldig opprydding (T * pointer).

Forward Declared Pointers.

Klasser som er forhandsdeklarert, kan brukes innen QScopedPointer, sa lenge destruktoren til den forutbestemte klassen er tilgjengelig nar en QScopedPointer ma rydde opp.

Konkret betyr dette at alle klasser som inneholder en QScopedPointer som peker pa en fremad deklarert klasse, ma ha ikke-inline-konstruktorer, destruktorer og oppdragsoperatorer:

Ellers sender kompilatoren en advarsel om ikke a kunne odelegge MyPrivateClass.

Medlemsfunksjon Dokumentasjon.

QScopedPointer :: QScopedPointer (T * p = Q_NULLPTR)

Konstruerer denne QScopedPointer-forekomsten og setter pekeren til s.

QScopedPointer ::

Odelegger dette QScopedPointer-objektet. Slett objektet som pekeren peker pa.

T * QScopedPointer :: data () const.

Returnerer verdien av pekeren referert til av dette objektet. QScopedPointer eier fremdeles objektet pekt pa.

bool QScopedPointer :: isNull () const.

Returnerer sant hvis dette objektet holder en peker som er null.

void QScopedPointer :: reset (T * other = Q_NULLPTR)

Sletter det eksisterende objektet som det peker pa om noen, og setter pekeren til andre. QScopedPointer eier na andre og vil slette den i sin destructor.

void QScopedPointer :: swap (QScopedPointer & lt; T, Opprydding & & andre)

Bytt denne pekeren med andre.

T * QScopedPointer :: ta ()

Returnerer verdien av pekeren referert til av dette objektet. Pekeren pa dette QScopedPointer-objektet blir nullstilt.

Kallere av denne funksjonen tar eierskap av pekeren.

QScopedPointer :: operator bool () const.

Returnerer sant hvis dette objektet ikke er null. Denne funksjonen er egnet for bruk i if-konstruksjoner, som:

bool QScopedPointer :: operator! () const.

Returnerer sant hvis pekeren referert til av dette objektet er null, ellers returnerer false.

T & QScopedPointer :: operator * () const.

Gir tilgang til scopedpekerens objekt.

Hvis den innebygde pekeren er null, er oppforselen udefinert.

T * QScopedPointer :: operator-> () const.

Gir tilgang til scopedpekerens objekt.

Hvis den innebygde pekeren er null, er oppforselen udefinert.

Beslektede ikke-medlemmer.

bool operator! = (const QScopedPointer & lt; T, Opprydding & amp; lhs, std :: nullptr_t)

Returnerer sant hvis den scoped pekeren lhs er en gyldig (dvs. en ikke-null) peker.

Denne funksjonen ble introdusert i Qt 5.8.

bool operator! = (std :: nullptr_t, const QScopedPointer & lt; T, Opprydding & gt; rhs)

Returnerer sant hvis den scoped peker rhs er en gyldig (dvs. en ikke-null) peker.

Denne funksjonen ble introdusert i Qt 5.8.

bool operator == (const QScopedPointer & lt; T, Opprydding & gt; lhs, std :: nullptr_t)

Returnerer sant hvis scopedpekeren lhs er en nullpeker.

Denne funksjonen ble introdusert i Qt 5.8.

bool operator == (std :: nullptr_t, const QScopedPointer & lt; T, Opprydding & gt; rhs)

Returnerer sant hvis den scoped peker rhs er en null pointer.