다음을 통해 공유


컴파일러 오류 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
}