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 :
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();    
}
Main.cpp :
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
}
Merci d'avance pour votre aide