Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
De särskilda medlemsfunktionerna är medlemsfunktioner för klass (eller struct) som kompilatorn i vissa fall automatiskt genererar åt dig. Dessa funktioner är standardkonstruktorn, destruktorn, kopieringskonstruktorn och kopieringstilldelningsoperatorn samt flyttkonstruktorn och flytttilldelningsoperatorn. Om klassen inte definierar en eller flera av de särskilda medlemsfunktionerna kan kompilatorn implicit deklarera och definiera de funktioner som används. De kompilatorgenererade implementeringarna kallas för standardfunktioner för särskilda medlemmar. Kompilatorn genererar inte funktioner om de inte behövs.
Du kan uttryckligen deklarera en standardfunktion för specialmedlem med hjälp av nyckelordet = standard . Detta gör att kompilatorn endast definierar funktionen om det behövs, på samma sätt som om funktionen inte deklarerades alls.
I vissa fall kan kompilatorn generera borttagna särskilda medlemsfunktioner som inte har definierats och därför inte kan anropas. Detta kan inträffa i fall där ett anrop till en särskild medlemsfunktion i en klass inte är meningsfullt med tanke på andra egenskaper för klassen. Om du uttryckligen vill förhindra automatisk generering av en särskild medlemsfunktion kan du deklarera den som borttagen med hjälp av nyckelordet = delete .
Kompilatorn genererar en standardkonstruktor, en konstruktor som inte tar några argument, bara när du inte har deklarerat någon annan konstruktor. Om du bara har deklarerat en konstruktor som tar parametrar får kod som försöker anropa en standardkonstruktor kompilatorn att skapa ett felmeddelande. Den kompilatorgenererade standardkonstruktorn utför enkel medlemsvis standardinitiering av objektet. Standardinitieringen lämnar alla medlemsvariabler i ett obestämt tillstånd.
Standardförstöraren utför medlemsvis förstörelse av objektet. Det är bara virtuellt om en basklassförstörare är virtuell.
Standardåtgärderna för kopiering och flytt av konstruktion och tilldelning utför medlemsvisa bitmönsterkopior eller flyttningar av icke-statiska datamedlemmar. Flyttåtgärder genereras endast när inga destructor- eller flytt- eller kopieringsåtgärder deklareras. En standardkopieringskonstruktor genereras bara när ingen kopieringskonstruktor deklareras. Den tas implicit bort om en flyttåtgärd deklareras. En standardoperator för kopieringstilldelning genereras endast när ingen kopieringstilldelningsoperator uttryckligen deklareras. Den tas implicit bort om en flyttåtgärd deklareras.