Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > Surcharge, valeur par defaut et constructeur > Lecture du sujet

Surcharge, valeur par defaut et constructeur

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Kilamasta # Posté le 29/05/2007 à 04:53:08
Groupe : Membres
Bonjour,

j'ai un problème avec les constructeurs,surcharge et valeur par défaut( tous en même temps!)Je ne suis pas capable de mettre de valeur par default dans mes constructeurs :

-Cloud doit prendre les valeurs de 100 vie et 100 mana puisqu'il n'y a aucun argument dans le constructeur (ici c'est OK)
(PROBLÈME)-Sephiroth devrait prendre les valeurs 150 vies et 50 mana, mais le compilateur refuse de compiler.

J'ai essayé plusieurs choses en modifiant le prototype dans le .h, mais rien ne fonctionne :(

Quelqu'un aurait une solution à mon problème?

Merci d'avance.

Main:
Code : C++
Personnage Cloud, Sephiroth(150);

Note : tout compile bien si je mets une valeur pour la mana ( 2 arguments dans Sephiroth)

Fonction .cpp
Code : C++

        Personnage::Personnage()
        {
                m_vie=100;
                m_mana=100;
                m_arme=0;

        }
        Personnage::Personnage(int vie=50, int mana=50)
        {
                m_vie=vie;
                m_mana=mana;
                m_arme=0;
        }

Prototype .h
Code : C++

class Personnage
{
    public:
        Personnage();
        Personnage(int vie,int mana);
        ...


};

Code : Console
error C2664: '__thiscall Personnage::Personnage(const class Personnage &;)' : cannot convert parameter 1 from 'const int' to 'const class Personnage &'
Reason: cannot convert from 'const int' to 'const class Personnage'
No constructor could take the source type, or constructor overload resolution was ambiguous
Édité le 29/05/2007 à 04:55:39 par Kilamasta
Hors ligne lmghs # Posté le 29/05/2007 à 10:23:49
Groupe : Membres
Tu as déclaré ici deux constructeurs par défaut. Choisis de n'en garder qu'un.

Un constructeur est dit par défaut quand il peut être appelé avec 0 paramètre réel depuis le code client. Ce qui n'empêche pas qu'il puisse avoir 10 paramètres formels, tous déclarés avec une valeur par défaut.

(Param. réel =~ param d'appel ; param formel =~ param de la signature/utilisé dans le corps)
 
Hors ligne Nataniel # Posté le 29/05/2007 à 13:44:09
Avatar
Groupe : Membres
Edit : j'ai rien dit... c'était des bêtises du à une erreur de lecture...
Édité le 29/05/2007 à 13:45:13 par Nataniel
 
Hors ligne Kilamasta # Posté le 29/05/2007 à 17:22:29
Groupe : Membres
Merci!
Hors ligne lmghs # Posté le 30/05/2007 à 01:37:45
Groupe : Membres
Oups. Je n'avais pas fait attention au code. Il présente exactement la même erreur que le dernier tuto de mathéo.

Si valeurs par défaut tu veux, dans la déclaration de la fonction tu les déclareras. Pas dans sa définition. Et un seul constructeur par défaut tu auras.
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 123 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.1181s (0.1031s)