Partager via


Initialisation avec les fonctions membres spéciales

Cette section décrit l'initialisation à l'aide de fonctions membres spéciales. Elle aborde les discussions suivantes sur l'initialisation :

  • Initialisation des agrégats qui décrit comment initialiser des tableaux de types sans classe et des objets de types de classe simple. Ces types de classe simple ne peuvent avoir de membres privés ou protégés, et ils ne peuvent pas avoir de classes de base.

  • Constructeurs, qui explique comment initialiser des objets de type de classe à l'aide de fonctions constructeurs spéciales.

La méthode d'initialisation par défaut consiste à effectuer une copie bit par bit de l'initialiseur vers l'objet à initialiser. Cette technique ne s'applique qu'aux éléments suivants :

  • Objets de types intégrés. Par exemple :

    int i = 100;
    
  • Pointeurs. Par exemple :

    int i;
    int *pi = &i;
    
  • Références. Par exemple :

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • Objets de type de classe, dans lesquels la classe n'a aucun membre privé ou protégé, aucune fonction virtuelle et aucune classe de base. Par exemple :

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

Les classes peuvent spécifier une initialisation plus raffinée en définissant des fonctions constructeurs. (Pour plus d'informations sur la déclaration de ces fonctions, consultez Constructeurs.) Si un objet est de type de classe avec un constructeur, l'objet doit être initialisé ou il doit exister un constructeur par défaut. Les objets qui ne sont pas spécifiquement initialisés appellent le constructeur par défaut de la classe.

Voir aussi

Référence

Fonctions membres spéciales (C++)