を動作するように望んでいない:ポインタ - この短いコードで
class X
{
private:
class Y
{
public:
typedef void (X::* ptr_to_mem)();
Y(X* parent,ptr_to_mem ptr):parent_(parent),ptr_(ptr)
{}
void run()
{
parent_->*ptr_();//at this line I'm getting an error
}
private:
X* parent_;
ptr_to_mem ptr_;
};
public:
void some_fnc()
{
cout << "some_fnc";
}
void another()
{
Y y_(this,&X::some_fnc);
y_.run();
}
};
エラー:
error: must use '.*' or '->*' to call pointer-to-member function in '((X::Y*)this)->X::Y::ptr_ (...)', e.g. '(... ->* ((X::Y*)this)->X::Y::ptr_) (...)'
*コンパイルできない* –
なぜコードを作成して読みにくいのですか?おっと - 忘れた - 仕事のセキュリティ –
#癒し私はそれをするためにあなたの考え方を持たなければならないでしょう。 – smallB