Quelles sont les valeurs par défaut pour les membres d'une structure et les membres d'une classe en c ++, et comment ces règles diffèrent-elles (par exemple entre les classes / structures / primitives / etc)? Y a-t-il des circonstances où les règles concernant les valeurs par défaut diffèrent?
Réponses
Trop de publicités?Il n'y a pas de différences entre les structures et les classes à cet égard en C++. Ils sont tous appelé tout types de classe.
Les membres de la classe de types ont pas de valeurs par défaut dans le cas général. Pour un membre de la classe pour obtenir une valeur déterministe, il doit être initialisé, ce qui peut être fait par
- Constructeur par défaut du membre lui-même
- Constructeur de liste d'initialiseur de la classe englobante
- Explicitement spécifié initialiseur pour objet de la classe englobante (qui comprend la valeur de l'initialisation et de l'initialisation de l'agrégat de l'initialiseur).
En outre, tous les objets statiques durée de stockage sont initialisé à zéro lors du démarrage du programme.
Côté forme les cas ci-dessus, les membres de la classe, une fois de plus, n'ont pas de valeurs par défaut et d'abord contenir imprévisible des ordures valeurs.