HOWTO:访问成员函数指针?

HOWTO:访问成员函数指针?

#include <iostream.h> 
#include <afxwin.h>   

typedef double TYPE; 

class A 
{ 
public: 
    bool fun(TYPE& n) 	//参数是引用类型可以统一处理(Very good!)
    { 
        cout<<"A::fun() "<< n <<endl; 
        return true;         
    }     
    void * GetP()         
    {         
        bool (A::* pFun)(TYPE&);         
        pFun = fun;         
        return *(void **)&pFun;       // 注意:return (void *)&pFun;是错误的!        
    }     
}; 

class B 
{     
public:     
    A a;    
    void Show(void * pVoid)         
    {         
        void * p = a.GetP();         
        A * pA = &a;         
        _asm 
        {             
            mov eax, pVoid      //如果参数不是指针类型,则要用 lea eax, param                 
            push eax 
            mov ecx, pA          //在ecx中要放置对象的地址             
              call p                 
        }         
    }     
}; 

void main() 
{     
    B b;     
    int i = 100;     
    double d = 100.236;     
    CString str("I am zht"); 
    
    b.Show(&d); 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值