Condividi tramite


Errore del compilatore C2663

'function': gli overload dei numeri non hanno conversioni legali per il puntatore 'this'

Osservazioni:

Impossibile convertire this il compilatore in una delle versioni di overload della funzione membro.

Questo errore può essere causato dal richiamo di una funzione nonconst membro in un const oggetto . Possibili risoluzioni:

  1. Rimuovere l'oggetto dalla dichiarazione dell'oggetto const .

  2. Aggiungere const a uno degli overload della funzione membro.

Example

L'esempio seguente genera l'errore 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
}