64,637
社区成员
发帖
与我相关
我的任务
分享
class A{
function<int (int)> m_call;
public:
A(decltype(m_call) pf) : m_call(pf) {m_call(2);}
};
int tt(int){}
struct B{
int tt(int){}
};
B b;
A a(&tt),c(bind(&B::tt,&b,_1));
class X
{
public:
void f();
};
void (X::*pf)() = &X::f;
嘿嘿,写错了,纠正一下class CA
{
public:
CA(int (CA::*pfn)(int) = &CA::F)
: _pfnF(pfn)
{
}
int F(int a)
{
return a + 1;
}
int F2(int a)
{
return a + 2;
}
void Dispaly(int a)
{
TR(L"%d", (this->*_pfnF)(a));
}
int (CA::*_pfnF)(int);
};
int main()
{
CA ca;
ca.Dispaly(100);
CA cb(&CA::F2);
cb.Dispaly(100);
return 0;
}
class X
{
public:
void f();
};
void (X::pf*)() = &X::f;