Поделиться через


Ошибка компилятора C2663

"function": перегрузки чисел не имеют юридических преобразований для указателя "this"

Компилятору не удалось преобразовать this ни в одну из перегруженных версий функции-члена.

Эта ошибка может быть вызвана вызовом функции, не являющейсяconst членом объекта const . Возможные разрешения:

  1. const Удалите из объявления объекта.

  2. Добавьте const одну из перегруженных функций-членов.

Следующий пример приводит к возникновению ошибки 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
}