Bonjour à tous, j'aurai besoin d'aide sur un probleme que je ne comprend pas. Dans un constructeur j'essaye de blinder les valeur recues en paramettre (une chaine de caractere). En gros si il recoit "A" "B" "C" ou "F" il initialise l'attribut sinon il lui donne une valeur par defaut. Pour ca j'utilise l'operateur || comem ceci:
Et lorsque je compile, j'ai l'erreur suivante:
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 #include <iostream> #include "grade.h" using namespace std; Grade::Grade(string letter, double weight) { if(letter="A" || letter="B" || letter="C" || letter="F") { gradeletter=letter; } else gradeletter="F"; gradeweight=weight; } string Grade::getLetter() { return gradeletter; } double Grade::getWeight() { return gradeweight; }
grade.cpp(8): error C2677: '||' binaire*: aucun opérateur global trouvé qui accepte le type 'std::string' (ou il n'existe aucune conversion acceptable)
Voici le .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 #ifndef GRADE_H #define GRADE_H using namespace std; class Grade { public: Grade(string =" ", double = 0.0); string getLetter(); double getWeight(); private: string gradeletter; // example: gradeletter: A double gradeweight; // example: gradeweight: 4.0 }; #endif
Partager