Bonsoir à tous.
Je rencontre un problème avec la surcharge de l'opérateur+.
En fait, je dois gèrer les pièces d'un musée; je dois donc pouvoir rentrer un nom, date, prix d'achat,...
Pour le prix d'achat de la pièce, on me dit que je dois pouvoir le modifier en ajoutant ou en retirant une somme d'argent. Je souhaiterais donc pour cela surcharger les opérateurs + et -.
Pour ce faire je procède de la façon suivante:
Code dans PieceMusee.h:
Code dans PieceMusee.cxx:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PieceMusee operator+(const float montant); PieceMusee operator-(const float montant);
Appel de mes opérateurs surcharger dans main.cxx:
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 PieceMusee PieceMusee::operator+ (const float montant) { PieceMusee d(*this); if( montant > 0) { d.PrixPiece = d.PrixPiece + montant; /*dans le cas ou la piece dépasse une certaine valeur je dois changer une variable membre de valeur (un bool)*/ if(getPrixPiece() > 50000 && getPretPiece() == true) d.PretPiece = false; } return d; } PieceMusee PieceMusee::operator- (const float montant) { PieceMusee d(*this); if(montant > getPrixPiece()) { d.PrixPiece = d.PrixPiece - montant; if((getPrixPiece() < 50000) && (getPretPiece() == false )) d.PretPiece = true; } return d; }
Je travaille avec un objet alloué dynamiquement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cout<<"Veuillez saisir la valeur a ajouter: "; float Pa; cin>>Pa; *pm1 = *pm1 + Pa;
Voilà donc mon code. Maintenant, lorsque je lance la compilation pas de problème. (Mon makefile fonctionne parfaitement).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pm1 = new PieceMusee; pm1 est bien de type PieceMusee*
Par contre quand je fais appel à mon opérateur surcharger, j'ai l'erreur suivante qui se produit:Quelqu'un pourrait-il me dire ce que signifie ce message et ce que je pourrais faire pour ne plus l'avoir?
Code : Sélectionner tout - Visualiser dans une fenêtre à part BUS ERROR (core dumped)
Je vous remercie d'avance pour votre aide.
Partager