Assignation et constructeur de copie - C++ - Programmation
Marsh Posté le 09-09-2003 à 22:48:58
non, si Type::Type(const Type& ) est défini, il sera appelé pour construire E; sinon ce sera une recopie champ à champ.
Marsh Posté le 10-09-2003 à 02:53:12
En fait ce que je voudrai c'est :
Code :
|
E(T) n'appel pas le constructeur de copie étant donné que E(T) ne correspond qu'à une assignation d'adresse.
Ma question est de savoir si il existe une autre solution sans utiliser de pointeur?
Par exemple:
Code :
|
Je n'ai jamais vu d'exemple utilisant une référence de cette manière, c'est pour ça que cela me perturbe.
Et comme mon programme bug quand je modifie E par &E, je me demande si ça vaut la peinne de debuger ou si c'est le style d'usage à proscrire et si dans ce cas, il y'a mieux à faire??
Marsh Posté le 10-09-2003 à 08:56:54
Je vois pas ce que tu veux faire là. Tu peux tout à fait metre une référence et l'initialiser par E(val). Si non, si t'as un objet t'as forcément appel du constructeur de recopie vu que c comme ça que ça fonctionne dans le langage
Marsh Posté le 10-09-2003 à 09:08:36
Taz a écrit : E(new Type(*T)) |
Et double appel du constructeur de recopie c ça?
Marsh Posté le 10-09-2003 à 09:13:05
ben non
Type(*T) -> recopie de *T
new Type(*T) -> recopie de *T avec allocation dynamqiue
E(new Type(*T)) -> initialisation
tu vas nous faire de plaisir de changer tes noms de types et de varaibles, par ce que par convention seuls les types ont des identificateur avec masjucule et les noms très courts en majuscule sont réservés aux paramètres templates
Marsh Posté le 10-09-2003 à 09:24:06
Taz a écrit : ben non |
Ha oui merde, je suis pas encore bien réveiller moi
Marsh Posté le 10-09-2003 à 12:10:40
Merci à tous,
j'ai trouvé une solution,
je ne sais plus vraiment pourquoi hier cela me semblait suspect mais avec une réference ça marche très bien (je me retrouve avec quelques bugs en échange mais en tout cas le constructeur de recopie n'est plus appelé
Code :
|
Désolé pour la perte de temps occasionné par cette bête question, mais hier cela me semblai un peu moins trivial
merci aussi à Taz pour ces conseils sur les noms de variables, je ne me suis encore jamais vraiment intéresser au normes dans ce domaine, ce que je vais m'empresser de faire!
Marsh Posté le 10-09-2003 à 12:51:17
Peak a écrit : Merci à tous,
|
oue je suis d accord
Marsh Posté le 09-09-2003 à 22:20:27
Bonjour,
J'aimerai avoir votre avis sur ceci:
Dans cette exemple, est-il possible d'éviter que l'assignation "E(T)" n'appel le constructeur de copie sans que E ne soit un pointeur?