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:
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;
}
Et lorsque je compile, j'ai l'erreur suivante:
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