Bonjour à tous,
Je suis actuellement en train d'apprendre le C++ sur le livre de Stroustrup. Je suis au chapitre concernant les classes et on me demande de construire une classe Livre dont les membres sont ISBN, l'auteur, le titre, la date de copyright, un membre indiquant si le livre est sorti ou non (d'une bibliothèque par exemple). On nous demande d'écrire des fonctions qui renvoient la valeur de chacun des membres avec une précision concernant l'ISBN qui doit s'écrire suivant ce format n-n-n-x (n peut etre un entier de longueur variable suivant Wikipedia, et x soit une lettre soit un chiffre). Afin de pouvoir le représenter sous ce format j'ai pensé à écrire une classe pour l'ISBN. J'ai également implémenté une classe Date pour représenter la Date dont les détails ne nous intéressent pas pour le problème que je rencontre. Voici un extrait de mon code (un code de débutant) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
J'ai d'abord fait :
et ensuite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
if (book1.get_isb()==book2.get_isb()) compare deux termes de type ISBN, avec la surcharge que j'ai implémenté juste avant cela ne devrait pas poser de problème a priori puisque j'ai défini le test d'égalité de deux variables de type ISBN, non ? A la compilation ma fonction bool operator==(const ISBN& isb1, const ISBN& isb2) ne pose pas de problème mais la suivante si avec ceci comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
error: no match for 'operator==' in '((Livre*)book1)->Livre::get_isb() == ((Livre*)book2)->Livre::get_isb()'|
Des suggestions ?

 

 
		
		 
        

 
			
			


 
   
 


 Surcharge d'opérateur pour une classe incrusté dans une autre classe ?
 Surcharge d'opérateur pour une classe incrusté dans une autre classe ?
				 Répondre avec citation
  Répondre avec citation
Partager