Nous savons que le compilateur génère des fonctions membres pour la classe définie par l'utilisateur si ces fonctions membres sont non défini mais utilisé, n'est-ce pas? J'ai donc ce genre de code:Problème avec les fonctions membres par défaut de la classe en C++ (constructeur, destructeur, opérateur =, constructeur de copie) (par défaut ctor, dtor, copy ctor)
class AA
{
};
void main()
{
AA a;
AA b(a);
a = b;
}
Ce code fonctionne très bien. Je veux dire aucune erreur de compilation. Mais le code suivant ....
class AA
{
int member1;
int member2;
};
Mais ce code donne une erreur de temps d'exécution, car la variable « a » est utilisé sans être iniltialized !!! Donc, ma question est la suivante: lorsque nous instancions un int, il a une valeur. Alors pourquoi le constructeur par défaut ne fonctionne pas et en utilisant ces deux nombres int initialise la variable "a" ??
EDIT: Plate-forme: Win Vista, compilateur: compilateur Visual Studio 2008; Drapeaux: Par défaut
quel type d'erreur d'exécution? – Glen
Ecriture seconde fois: la variable "a" est utilisée sans être inlialisée !!! – Narek
Peut-être dans votre compilateur "/ WX" (traiter les avertissements en tant qu'erreurs)? –