E2069 メンバ ポインタの不正な使用 (C++)

提供: RAD Studio
移動先: 案内検索

コンパイラのエラーと警告(C++):インデックス への移動

クラス メンバへのポインタを使用できるのは、関数に引数として渡す場合か、以下の演算子と共に使用する場合です。

  • 代入演算子
  • 比較演算子
  • .*
  • ->*
  • ?: 条件(3 項)演算子
  • &&論理 AND 演算子
  • ||論理 OR 演算子

コンパイラは、メンバ ポインタが上記とは異なる演算子と共に使用されようとしていることを検出しました。

メンバ関数ポインタを呼び出すには、呼び出し先のクラスのインスタンスを指定する必要があります。

以下に例を示します。



 class A {
 public:
    myex();
 };
 typedef int (A::*Amfptr)();
 myex()
 {
    Amfptr mmyex = &A::myex;
    return (*mmyex)();  //エラー
 }



次のコードはコンパイルされます。



 class A {
 public:
    myex();
 };
 typedef int (A::*Amfptr)();
 foo()
 {
    A a;
    Amfptr mmyex = &A::myex;
    return (a.*mmyex)();
 }