类对象及类成员函数作为函数参数的方法

来源:互联网 发布:美瞳购买知乎 编辑:程序博客网 时间:2024/05/18 00:48

以此类为例:

class CA

{

public:

CA(CString str)

{m_str = str;}

 

void Fff(CString str)

{cout<<str<<m_str<<endl;}

 

public:

CString m_str;

}

 

//函数:

void  f1(CA *a, void(CA::*f)(CString), CString str)

{ (a->*f)(str); }

用例:

void main()

{

CA aa("123");

f1(&a, &CA::Fff, "bbb");

}

//模板函数

template<class _Ty>

void  f1(_Ty* a, void(_Ty::*f)(Ctring), Cstring str);

f1<CA>(&a, &CA::Fff, "bbb");