今回は、C++でのメンバ関数のポインタについて困ったことがあったのでここで質問させていただきます。
C++でメンバ関数のポインタをメンバ変数に以下のように最初に代入しました。
namespace Foo
{
class hoge
{
//...(略)
bool ( hoge::*m_phogeFunc )();
public:
//...(略)
bool hogeFunc();
void start();
};
//コンストラクタ
hoge::hoge()
{
m_phogeFunc = &hoge::hogeFunc;
}
void hoge::start()
{
loop( m_phogeFunc )
}
}
また、startという関数でグローバルスコープの関数ポインタを引数に取るloopという関数を呼び出すことにします。すると、loopの引数をFoo::hoge::*から*に変換できませんと出てコンパイルエラーとなります。
スコープの違いで出るエラーだと思うのですが・・・。
これを解決する手段はないのでしょうか?