クラスのメンバ関数のアドレスを保持したい

[戻る]
いともん 2004/01/03(土) 22:56:44
class A{ 
public: 

int testA(); 
}; 

class B{ 

public: 
int testB(); 
}; 

AとBの中にあるtestA testBという関数のポインタを保持して呼べるようにしたいのです
が、エラーがでてしまいます。 

friend を使わずに可能にする方法はありませんでしょうか?

επιστημη [E-Mail] [HomePage] 2004/01/03(土) 23:45:53
#include <iostream>

class A { 
public: 
  int testA() { std::cout << "A::testA()\n"; return 0; }
}; 

class B { 
public: 
  int testB() { std::cout << "B::testB()\n"; return 0; }
}; 

int main() {
  int (A::*methodA)() = &A::testA;
  int (B::*methodB)() = &B::testB;
  A a; (a.*methodA)();
  B b; (b.*methodB)();
  return 0;
}

古いスレッドには追加発言できません。