À propos de l'instanciation d'un objet
baloo
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonsoir,
Je trouve souvent deux différentante manière pour créer un objet en C++.
ET
Donc je voudrais savoir la différence entre ces deux manières et laquelle est la meilleure ou la plus adaptée.
Merci
Je trouve souvent deux différentante manière pour créer un objet en C++.
MaClass objet1; objet1.methode();
ET
MaClass* objet2 = new MaCLass; objet2.methode();
Donc je voudrais savoir la différence entre ces deux manières et laquelle est la meilleure ou la plus adaptée.
Merci
A voir également:
- À propos de l'instanciation d'un objet
- Vente objet occasion entre particulier - Guide
- Identifier un objet à partir d'une photo - Guide
- Mesurer un objet - Guide
- Objet interdit en cabine ryanair - Guide
- Ouvrez ce fichier avec un éditeur de texte simple (bloc-notes, textedit, gedit, etc.) pour y découvrir le nom d’un objet. - Forum C#
1 réponse
La différence est sur le type des données.
objet1 est un objet de MaClass, alors que objet2 n'est que le pointeur sur un deuxième objet de MaClass.
Dans le premier cas tu appelles directement le constructeur par défaut puisque le type de la classe est directement connu par ta déclaration, ce qui n'est pas le cas avec le pointeur et dont il faut préciser explicitement de quel type on parle.
Remarque : puisque c'est un pointeur on ne devrait pas avoir objet2.methode(), mais plutôt (*objet2).methode() ou directement objet2->methode()
Après savoir lequel est le mieux, relève plus de la "théorie des pointeurs", car au niveau de l'instanciation en soit, c'est pareil...
objet1 est un objet de MaClass, alors que objet2 n'est que le pointeur sur un deuxième objet de MaClass.
Dans le premier cas tu appelles directement le constructeur par défaut puisque le type de la classe est directement connu par ta déclaration, ce qui n'est pas le cas avec le pointeur et dont il faut préciser explicitement de quel type on parle.
Remarque : puisque c'est un pointeur on ne devrait pas avoir objet2.methode(), mais plutôt (*objet2).methode() ou directement objet2->methode()
Après savoir lequel est le mieux, relève plus de la "théorie des pointeurs", car au niveau de l'instanciation en soit, c'est pareil...