Bonjour,
j'ai un soucis avec le mot clé const. J'ai des méthodes de validation qui prennent une autre classe en paramètre. Donc comme d'habitude je met un (const classA& _param) en argument.
Ensuite j'appelle des méthodes de validation de la classe passée en argument et j'obtiens un joli message d'erreur signifiant qu'il n'y a pas de méthode associé à la classe const.
Ce que je ne comprend pas c'est que le mot-clé const permet au compilateur d'optimiser, car il sait que la classe ne sera pas modifié. Et je ne fais qu'un get sur un membre.
Voila un code d'example :
Code:
1
2
3
4
5
6
7
8 class Validator // .h { public: Validator(); virtual ~Validator(); bool is_valid(const Packet& _packet); }
Code:
1
2
3
4
5
6
7
8
9 //.cpp bool Validator::is_valid(const Packet& _packet) { switch(_packet.getType()) // erreur vient d'ici { // blablabla } }
Code:
1
2
3
4
5
6
7
8
9
10
11 class Packet // .h { public: Packet(); Packet~Packet (); char getType() {return m_type;} private: char m_type; }
L'erreur :
Merci de votre aide.Citation:
error: no matching function for call to 'Packet::getType() const'