当前位置: 首页 > news >正文

C++中怎样获取类成员的指针


我们都知道C++ class中有三种成员函数,static(静态的),nonstatic(非静态的),virtual(虚拟的)各种成员函数的指针各有差别,下面是一个完整的样例:(注意红颜色的差别
class A 
{
public:
   static void staticmember(){cout<<"static"<<endl;}   //static member
   void nonstatic(){cout<<"nonstatic"<<endl;}          //nonstatic member
   virtual void virtualmember(){cout<<"virtual"<<endl;};//virtual member
};
int main()
{
  A a;
  //static member,取得的是该函数在内存中的实际地址,并且由于static成员是全局的,所以不能用A::限定符
  void (*ptrstatic)()= &A::staticmember;      
  //nonstatic member 取得的是该函数在内存中的实际地址     
  void (A::*ptrnonstatic)() = &A::nonstatic;
 //虚函数取得的是虚函数表中的偏移值,这样能够保证能过指针调用时相同的多态效果
  void (A::*ptrvirtual)() = &A::virtualmember;
 //函数指针的使用
  ptrstatic();
  (a.*ptrnonstatic)();
  (a.*ptrvirtual)();
}

相关文章:

  • lol盒子重点内容
  • 安卓逆向系列教程 4.6 去广告
  • Myeclipse安装SVN插件
  • 王国维读书三大境界
  • dubbo异常: Failed to invoke the method getFormulaZtree in the service 异常解决方案
  • 多行文本溢出显示省略号(…)全攻略
  • MySQL 最基本的SQL语法/语句
  • 微软职位内部推荐-Senior Software Engineer_Azure
  • 使用 layoutopt 进行布局优化
  • 神经
  • REST,http,服务器开发
  • [WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore
  • testbench的文件读写
  • JavaScript获取table中某一列的值的方法
  • 设计模式C++实现(14)——职责链模式
  • @jsonView过滤属性
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Git同步原始仓库到Fork仓库中
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java中具有继承关系的类及其对象初始化顺序
  • JS字符串转数字方法总结
  • Odoo domain写法及运用
  • React的组件模式
  • vue 个人积累(使用工具,组件)
  • Vue组件定义
  • webpack+react项目初体验——记录我的webpack环境配置
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 包装类对象
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 第2章 网络文档
  • 第十八天-企业应用架构模式-基本模式
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 事件委托的小应用
  • 手机端车牌号码键盘的vue组件
  • 思维导图—你不知道的JavaScript中卷
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 大数据全解:定义、价值及挑战
  • 我们雇佣了一只大猴子...
  • ​2020 年大前端技术趋势解读
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (二)windows配置JDK环境
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (一)kafka实战——kafka源码编译启动
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上