Bonjour
Maintenant que j'ai bien compris les surcharges et polymorphismes, je me suis mis à étudier les surcharges d'opérateurs
J'ai donc essayé de créer une classe entier avec deux surcharges pour l'opérateur =
Lorsque je crée un entier avec ma classe et que j'affecte cet entier à une variable int, j'ai le compilateur qui grogne "cannot converter 'entier' to 'int'
Pourtant j'ai surchargé l'opérateur =, je ne comprends pas ce qui se passe
Pouvez vous me dire ce qui ne va pas s'il vous plait? Car je trouve pas, et comme je débute je pense pas que je vais trouver avant longtemps
Voici le code de ma classe, ansi que le programme :
entier.h :
Main.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class entier { private: int nombre; public: void init(int); int get_nombre(); void operator=(int); int operator=(entier); }; //initialise void entier::init(int nb) { this->nombre = nb; } //retourne le nombre int entier::get_nombre() { return this->nombre; } //quand on affecte un int à un entier void entier::operator=(int nb) { entier::init(nb); } //quand on affecte un entier à un int int entier::operator=(entier nb) { return nb.get_nombre(); }
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 entier nb1; int nb3; nb1 = 5; //fonctionne nb3 = nb1; //c'est la que ça coince }
Partager