Compartir a través de


Error del compilador C2663

'función': número sobrecargas no tienen ninguna conversión válida para el puntero 'this'

El compilador no ha podido convertir this en ninguna de las versiones sobrecargadas de la función miembro.

Este error puede deberse a la invocación de una función miembro que no es const en un objeto const. Posibles resoluciones:

  1. Quite el elemento const de la declaración del objeto.

  2. Agregue const a una de las sobrecargas de función miembro.

El ejemplo siguiente genera el error C2663:

// C2663.cpp
struct C {
   void f() volatile {}
   void f() {}
};

struct D {
   void f() volatile;
   void f() const {}
};

const C *pcc;
const D *pcd;

int main() {
   pcc->f();    // C2663
   pcd->f();    // OK
}