Quelqu'un peut-il me dire pourquoi je reçois cette erreur lors du remplissage de cette classe?Impossible de convertir le pointeur 'this' en classe &
class C
{
public:
void func(const C &obj)
{
//body
}
private:
int x;
};
void func2(const C &obj)
{
obj.func(obj);
}
int main() { /*no code here yet*/}
Bonne réponse. Essayer de rendre le point encore plus clair: Puisque 'func2' prend un' const C & '(c'est-à-dire une référence à un' const C'), cela signifie que la fonction ne peut pas modifier cette instance d'objet. Cette contrainte est transmise à la fonction membre appelée 'C :: func': elle ne devrait pas modifier l'instance de l'objet; donc le 'const' requis dans la déclaration. – stakx
Ok, mais pourquoi dit-on ne peut pas convertir en C &? – Drew
Ce n'est pas un grand message d'erreur. Mon compilateur dit "Impossible de convertir 'ce' pointeur de 'const C' en 'C &'". Ce qui ne gagne pas de prix peut-être, mais fait bien comprendre qu'un problème de correction de const est le problème. –