컴파일러 오류 C2663
'function': 숫자 오버로드에 'this' 포인터에 대한 법적 변환이 없습니다.
컴파일러가 멤버 함수의 오버로드된 버전으로 변환 this
할 수 없습니다.
이 오류는 개체에서 멤버가 아닌const
함수를 호출하여 발생할 수 있습니다 const
. 가능한 해결 방법:
const
개체 선언에서 제거합니다.멤버 함수 오버로드 중 하나에 추가
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
}