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

c++类成员指针用法

1)C++入门级小知识,分享给将要学习或者正在学习C++开发的同学。

2)内容属于原创,若转载,请说明出处。

3)提供相关问题有偿答疑和支持。
 

c++中新增类成员指针操作,为了访问方便,他是指向类的成员指针:
首先看一下成员变量指针:

另外的情况是:

 

定义方法:
成员类型 类名::*指针名=&类名::成员名;

对于成员变量指针可以指向任意相同类型的不同变量;
另外要是用  .*  或者是  ->*运算符去解引用,这个很好理解:
string A::* str = &A::m_str;
cout << a.*str << endl;
str是个指针,*str就是取得对象本身, a.*str就是从对象a中取得对象本身了;

对于类成员数据的定义方法要严格遵守上面的公式,如下的运用是错误的:

 

对于上面的定义:int A::* p = A::m_data;
按照我们的理解是:既然p是指针那么m_data本身也是指针,但是这个无法成立,无法遵守上面的公式定义(成员类型 类名::*指针名=&类名::成员名;);

对于静态成员,由于静态成员不属于类中的成员,因此,对于静态成员类型的成员使用方法与一般的普通的成员指针一样,只是加一个类的限定如:(&A::m_data):

下面看一下成员函数指针:

 

对于一般的成员函数指针同样的问题是需要加类的作用域限定符;
定义的一般形式是:
void (A::*fun)(int) = &A::set; //&号不能省略,与c不同
引用的一般形式是:
(a.*fun)(200); //注意的是(a.*fun)是需要括号的

对于特殊的静态成员函数指针,同样时函数不在类中,使用方式和一般的函数指针使用方式一样:

http://www.lryc.cn/news/387433.html

相关文章:

  • [240625] Continue -- 开源 Copilot | Web-Check 网站分析工具 | Story of EOL
  • 【Mac】Auto Mouse Click for Mac(高效、稳定的鼠标连点器软件)软件介绍
  • javaSE知识点整理总结(下)、MySQL数据库
  • Perl入门学习
  • 2024年7月计划(ue5肉鸽视频完成)
  • 恢复策略(上)-撤销事务(UNDO)、重做事务(REDO)
  • 【鸿蒙学习笔记】位置设置
  • 41.HOOK引擎设计原理
  • STM32启动流程 和 map文件的作用
  • 深度解析华为仓颉语言
  • Android简介-历史、API等级与体系结构
  • SpringBoot:使用Spring Batch实现批处理任务
  • 用JQueryUI库在.net MVC中配置datepicker(时间日期控件)
  • 算法:链表
  • Redis基础教程(一):redis配置
  • 短视频矩阵系统:打造品牌影响力的新方式
  • 品牌推广的三个阶段与核心内容,一篇文章全掌握!
  • 队列与循环队列
  • python基础问题记录
  • Qt之饼图(Pie Graph)
  • Java项目Git提交规范
  • flink-触发器Trigger和移除器Evictor
  • 【力扣 28】找出字符串中第一个匹配项的下标 C++题解(字符串匹配)
  • 软件构造 | Design Patterns for Reuse and Maintainability
  • Python数据分析-股票分析和可视化(深证指数)
  • Linux如何安装openjdk1.8
  • 【LLVM】LTO学习
  • 事务的特性-原子性(Atomicity)、一致性(Consistency)、隔离性(Asolation)、持久性(Durability)
  • redis哨兵模式(Redis Sentinel)
  • 【牛客】牛客小白月赛97 题解 A - E