次の方法で共有


コンパイラ エラー C2663

'function' : number のオーバーロードでは、'this' ポインターに対する正当な変換がありません

コンパイラでは、this をオーバーロードされたバージョンのメンバー関数に変換することができませんでした。

このエラーは、const オブジェクトで非 const メンバー関数を呼び出した場合に発生する可能性があります。 考えられる解決策:

  1. オブジェクト宣言から const を削除します。

  2. メンバー関数のオーバーロードの 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
}