AFX_PMSG数据结构

博客主要介绍了AFX_PMSG数据结构,给出其定义,说明了AFX_MSG_CALL的作用及函数指针的限定情况。还阐述了用AFX_PMSG定义变量的使用规则,如只能用类的类方法赋值、只能在类内部使用等,同时说明了类名限定对类型作用域的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AFX_PMSG数据结构
  定义: typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);
  
  void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);  //AFX_MSG_CALL定义为空,只为强调是MSG_CALL
  
  void (CCmdTarget::*AFX_PMSG)(void); //指定(限定)为ccmdTarget 的成员函数
  
  typedef void (*AFX_PMSG)(void);   //使用typedef定义函数指针类型: AFX_PMSG
  
  void (*afx_pmsg)(void);  //普通函数指针

//===========

typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);

AFX_PMSG pfunc; //用AFX_PMSG定义变量pfunc,则:

加上CCmdTarget::限定,则:(有无此限定导致了函数的调用约定不同,全局函数和类方法的约定是不同的)
1.定义的函数指针变量只能用该类的类方法赋值
2.只能在类内部使用
3.唯一的使用形式(this->*pfunc)();

同时,类名限定不会影响该类型的作用域,即:
1.类外部定义,为全局作用域(类外部或者内部,可直接定义变量,好比一般的自定义全局类型如struct)
2.类内部定义,作用域为类内部(外部仍可通过作用域解析符使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值