コンパイラ エラー C2663
'function' : number のオーバーロードでは、'this' ポインターに対する正当な変換がありません
コンパイラでは、this
をオーバーロードされたバージョンのメンバー関数に変換することができませんでした。
このエラーは、const
オブジェクトで非 const
メンバー関数を呼び出した場合に発生する可能性があります。 考えられる解決策:
オブジェクト宣言から
const
を削除します。メンバー関数のオーバーロードの 1 つに
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
}