je viens de commencer à programmer sur C++; au départ; j'ai du mal à comprendre quelques notions , comme la notion du constructeur et de destructeur; vous pouvez m'expliquer de façon plus claire; et merci d'avance
-----
29/11/2012, 23h08
#2
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 788
Re : C++ explication
le constructeur doit se charger de tout ce qui concerne l'initialisation d'un objet. Le destructeur assure le nettoyage quand un objet devient inutile et est détruit.
A+
Dernière modification par Jack ; 29/11/2012 à 23h13.
08/12/2012, 17h25
#3
invite53af088b
Date d'inscription
janvier 1970
Messages
30
Re : C++ explication
Merci bcp pr ces info;
j'ai vu ds un exemple l'utilisation d'un constructeur et aussi d'un constructeur par défaut; je me demande à quoi sert ce dernier??
08/12/2012, 19h27
#4
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 788
Re : C++ explication
si tu ne donnes aucune indication sur les valeurs à initialiser, c'est ce constructeur qui sera utilisé.
Par exemple, si on instancie un point, le constructeur standard l'initialisera avec les coordonnées qu'on lui aura fournies (Point p(5,9); ). En l'absence de celle-ci, on peut décider de l'initialiser avec X=0 et Y=0 par exemple (point p; ).
A+
Dernière modification par Jack ; 08/12/2012 à 19h33.
Aujourd'hui
A voir en vidéo sur Futura
08/12/2012, 20h28
#5
Paraboloide_Hyperbolique
Date d'inscription
juin 2012
Localisation
Liège
Messages
2 687
Re : C++ explication
Bonsoir,
A noter que la plupart du temps (tout le temps ?) un compilateur fournit automatiquement un constructeur et un destructeur par défaut, même si l'on ne les spécifient pas explicitement dans le code. Dans l'exemple de Jack, cela autorisera toujours d'écrire "point p;"
Cependant, ce constructeur et destructeur par défaut ne font... rien. C'est à dire que les coordonnées du point p seront initialisées à des valeur indéfinies et le comportement du programme à l'exécution sera aléatoire.
Je spécifie ceci, car c'est un bug courant qu'un débogueur ne décéléra en général pas. En effet, la plupart des débogueurs remplissent par des 0 les variables non-initialisées (point p initialisé à (0, 0)). Cela a pour conséquence d'obtenir un programme qui se comporte normalement en mode debug et qui plante en mode release. Repérer l'erreur ci-dessus peut être très difficile dans certains cas, car elle n'est présente explicitement dans aucune ligne de code.
18/12/2012, 00h51
#6
invite1bcc2991
Date d'inscription
janvier 1970
Messages
137
Re : C++ explication
J'ajouterai que le constructeur par défaut que toutes les classes ont par défaut disparait si on défini un constructeur avec paramètres.
Exemple:
Code:
class Test
{
private:
int a;
public:
Test(int a)
{
this->a=a;
}
};
int main()
{
Test t; //ne compilera pas vu que le Test(int a) écrase le constructeur par défaut. Il faut donc redéfinir le constructeur par défaut, soit en mettant des valeurs par défaut (Test(int a=0)) au constructeur avec paramètres soit définir Test()
}