Est-ce la bonne façon ou juste un gros hack bien moche qui marche juste dans ce cas, je ne sais pas.
Ton programme d'avant est faux, tout simplement.
MaClasse*nouvClasse(nouveauSocket);
ne fait pas du tout ce que tu penses: cela initialise un pointeur nouvClasse sur type MaClasse avec la valeur nouveauSocket. En l'absence de surcharge d'opérateurs etc., c'est exactement comme si tu avais écrit
MaClasse*nouvClasse=nouveauSocket;
et le message du compilateur devient limpide. En C++ (langage tout pourriTM) il y a deux-cent treize façons d'initialiser les variables qui se mélangent avec les initialisations des objets. Tu viens de te faire avoir par un des aspects deagréables du langage qui favorise la confusion entre les variables «immédiates» et les objets (les premières n'ont pas de constructeur).
Tu peux aussi écrire
intn(1);
pour initialiser un entier.
C'est quoi ton livre pour le C++? Comme apparemment tu débutes dans le langage, je te recommande:
[^] # Re: Masquage d'identifiant
Posté par Michaël (site web personnel) . En réponse au message Constructeur : mauvais constructeur choisi. Évalué à 5.
Ton programme d'avant est faux, tout simplement.
ne fait pas du tout ce que tu penses: cela initialise un pointeur
nouvClassesur typeMaClasseavec la valeurnouveauSocket. En l'absence de surcharge d'opérateurs etc., c'est exactement comme si tu avais écritet le message du compilateur devient limpide. En C++ (langage tout pourriTM) il y a deux-cent treize façons d'initialiser les variables qui se mélangent avec les initialisations des objets. Tu viens de te faire avoir par un des aspects deagréables du langage qui favorise la confusion entre les variables «immédiates» et les objets (les premières n'ont pas de constructeur).
Tu peux aussi écrire
pour initialiser un entier.
C'est quoi ton livre pour le C++? Comme apparemment tu débutes dans le langage, je te recommande:
http://www.parashift.com/c++-faq/
http://yosefk.com/c++fqa/index.html
(En anglais.) Cela devrait t'aider à avoir une vision plus claire du langage plus utile qu'une conception basée sur «les gros hacks bien moches».
Et ta version avec le
newest bel et bien la façon idoine de faire.Bon courage!