Udostępnij za pośrednictwem


Błąd kompilatora C2663

"function": przeciążenia liczbowe nie mają konwersji prawnych dla wskaźnika "this"

Kompilator nie może przekonwertować this na żadną z przeciążonych wersji funkcji składowej.

Ten błąd może być spowodowany wywołaniem funkcji innej niżconst składowa const obiektu. Możliwe rozwiązania:

  1. Usuń obiekt const z deklaracji obiektu.

  2. Dodaj const do jednego z przeciążeń funkcji składowej.

Poniższy przykład generuje 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
}