4 votes

L'ajout de l'argument default lors de la redéclaration fait de ce constructeur un constructeur default.

Il indique que l'ajout de l'argument default lors de la redéclaration fait de ce constructeur un constructeur default.

J'ai fait quelques recherches à ce sujet, mais je ne comprends pas ce que je dois faire pour résoudre ce problème.

struct Transaction{
    int type;
    int amount;
    int to_from_type;
    Transaction(int, int, int);
};

Transaction :: Transaction(int type=0, int amount=0, int etc=0)
{
    this->type=type;
    this->amount=amount;
    this->to_from_type=etc;
}

 Transaction :: Transaction(int type=0, int amount=0, int etc=0) //I am getting an error at this code and I cannot fix it.

    {
        this->type=type;
        this->amount=amount;
        this->to_from_type=etc;
    }

Je ne suis pas un expert en C++ et j'aimerais avoir de l'aide pour mon code.

7voto

XCode utilise une combinaison de CLang et de LLVM d'Apple pour compiler votre code C++. Clang effectue quelques vérifications supplémentaires, ce qui inclut votre cas. Ce qui s'est passé ici est que vous avez défini un constructeur acceptant 3 paramètres mais que votre implémentation peut être appelée sans aucun, ce qui signifie que votre implémentation porte en fait la même signature de méthode (nom de méthode et liste de paramètres) que le constructeur implicite par défaut et que celui avec 3 paramètres (celui défini à l'intérieur de la structure) est laissé de côté aux yeux de votre compilateur. La solution est simple :

struct Transaction{
    int type;
    int amount;
    int to_from_type;
    Transaction(int=0, int=0, int=0);
};

Transaction :: Transaction(int type, int amount, int etc)
{
    this->type=type;
    this->amount=amount;
    this->to_from_type=etc;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X