纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

C详解类成员指针数据成员指针和成员函数指针及应用场合

7月15日 六壬会投稿
  对于类对象对于成员的调用,需要有类对象的限定,一方面是一个类命名空间,另一方面用于传递隐含的this指针。
  数据和函数,包括类对象的数据成员和成员函数,都是可以寻址的,自然也可以定义一个指针,使其指向类成员或成员函数,然后通过指针来访问类的成员。这包括指向属性成员的指针和指向成员函数的指针。1指向普通变量和函数的指针变量
  关于数据的指针变量存储了具有特定数据类型的一个内存空间的首地址,确定了其指向的目标对象的蓝图,核心是由数据类型确定了目标对象所需内存空间大小,数据类型的编码和解码方式。关于代码的指针变量是指指向函数的指针变量,同样是首地址,类型是由函数签名所确定的类型,以及代码的指令集编码及读取和译码方式。voidfunc(inta){coutpreh1classpgcharrowrightdatatrack62指向类数据成员和成员函数的指针h1pdatatrack19strong2。1指向类数据成员的指针strongpdatatrack202。1。1定义precode数据类型类名::指针名
  为了区别于普通指针变量,多了一个类名作用域限定,也显示了与类及类成员的相关性。
  2。1。2赋值初始化数据类型类名::指针名〔类名::非静态数据成员〕
  指向非静态数据成员的指针在定义时必须和类相关联,在使用时必须和具体的对象关联。
  2。1。3解引用
  由于类不是运行时存在的对象。因此,在使用这类指针时,需要首先指定类的一个对象,然后,通过对象来引用指针所指向的成员。类对象名。指向非静态数据成员的指针类对象指针指向非静态数据成员的指针
  示例代码:Students1(zhangsan,1002);stringStudent::psStudent::数据成员指针couts1。数据成员指针解引用couts2。StudentppnewStudent(wangwu,1003);
  2。2指向类成员函数的指针
  定义一个指向非静态成员函数的指针必须在三个方面与其指向的成员函数保持一致:参数列表要相同、返回类型要相同、所属的类型要相同。
  2。2。1定义数据类型(类名::指针名)(参数列表)
  为了区别于全局函数指针,多了一个类名作用域限定,也显示了与类及类成员的相关性。
  2。2。2赋值初始化数据类型(类名::指针名)(参数列表)〔类名::非静态成员函数〕
  2。2。3解引用
  由于类不是运行时存在的对象。因此,在使用这类指针时,需要首先指定类的一个对象,然后,通过对象来引用指针所指向的成员。(类对象名。指向非静态成员函数的指针)(参数列表)(类对象指针指向非静态成员函数的指针)(参数列表)
  示例代码:classStudent{public:Student(stringn,intnu):name(n),num(nu){}voiddis(){}};intmain(){Students1(zhangsan,1002);Students2(lisi,1001);stringpss。stringStudent::psStudent::数据成员指针couts1。数据成员指针解引用couts2。StudentppnewStudent(wangwu,1003);void(Student::pf)()Student::成员函数指针(s1。pf)();使用成员函数指针(s2。pf)();(pppf)();getchar();return0;}3指向类静态成员的指针
  指向非静态成员时,必须用类名作限定符,使用时则必须用类的实例作限定符。指向静态成员时,声明时则不需要使用类名作限定符。(当然静态成员做右值也需要类名限定)classA{public:staticvoidprint();};voidA::print(){}intA::data100;intmain(){intpA::右值要有类限定void(pfunc)()A::pfunc();getchar();return0;}4类成员函数指针数组
  用指向类员函数的指针,可以实现更加隐蔽的接口。classWidget{public:Widget(){fptr〔0〕f;fptr〔1〕g;fptr〔2〕h;fptr〔3〕i;}voidselect(intidx,intval){if(idx0idxcnt)(thisfptr〔idx〕)(val);}intcount(){}private:voidf(intval){coutvoidf()}voidg(intval){coutvoidg()}voidh(intval){coutvoidh()}voidi(intval){coutvoidi()}enum{cnt4};void(Widget::fptr〔cnt〕)(int);};intmain(){Wfor(inti0;iw。count();i){w。select(i,1);}getchar();return0;}5类函数指针做函数参数
  类函数指针与普通函数指针一样,也可以做函数参数,形成函数回调的效果,实现更加弹性和通用的代码。includestdio。hclassCS{public:voidcallback(intn){printf(处理逻辑1,d,n);}voidcallback2(intn){printf(处理逻辑2,d,n);}voidcallee(void(CS::csPF)(int))类成员函数指针{printf(按不同的处理逻辑操作);(thiscsPF)(12);调用成员函数指针与调用普通函数指针不同}voidcaller()callercallscalleethatcallscallback{callee(callback);}voidcaller2(){callee(callback2);}staticvoidsmfunc(intn){printf(我是一静态成员函数d,n);}friendvoiduserCSMemFunc(CScs,void(CS::csPF)(int));private:};voiduserCSMemFunc(CSpcs,void(CS::csPF)(int)){pcs。csi256;(pcs。csPF)(pcs。csi);}voiduserCSMemFunc2(CSpcs,void(CS::csPF)(int)){(pcs。csPF)(128);}intmain(){CScs,cs。caller();cs。caller2();typedefvoid(CS::csPF)(int);csPFcspfCS::(cs。cspf)(24);调用成员函数指针与调用普通函数指针不同(pcscspf)(48);void(pf)(int)cannotconvertfromvoid(thiscallCS::)(int)tovoid(cdecl)(int)void(pf)(int)CS::pf(256);userCSMemFunc(cs,CS::callback2);userCSMemFunc2(cs,CS::callback2);void(pff)(CScs,void(CS::csPF)(int))userCSMemFpff(cs,CS::callback2);getchar();return0;}按不同的处理逻辑操作处理逻辑1,12按不同的处理逻辑操作处理逻辑2,12处理逻辑1,24处理逻辑1,48我是一静态成员函数256处理逻辑2,256处理逻辑2,128处理逻辑2,256
  https:blog。csdn。netyyx112358articledetails78515420
  End
投诉 评论 转载

中元节是传统,并非迷信每年农历七月十五日为中元节,中元节是道教的名称,佛教称这一天为盂兰盆节。在民间,很多百姓纷纷在这一个节日的前后选择用放河灯、焚纸钱等方式来祭祖,缅怀祖先。随着时代的发展,有很多……金九银十面试慌?先拿好这份大厂面试流程及真题汇总01hr公司:字节跳动岗位:前端开发总共分为四面,一面主要是自我介绍,然后被问到为什么学习前端,以及一些专业题目:算法:实现36进制转换简述https原理,以……C详解类成员指针数据成员指针和成员函数指针及应用场合对于类对象对于成员的调用,需要有类对象的限定,一方面是一个类命名空间,另一方面用于传递隐含的this指针。数据和函数,包括类对象的数据成员和成员函数,都是可以寻址的,自然……灯泡内不用灯丝长寿命节能电池绝大多数电灯泡,里面都有钨制的灯丝,但钨是重要的战略物资,常常供不应求,而且现在普遍使用的钨丝白炽灯,用不到1000小时就会烧坏,以每天用4小时计算,只能用上一年时间还不到。为……北汽新能源全新高端电动SUV开启预订4K大屏华为5G芯片IT之家4月25日消息北汽新能源旗下ARCFOX首款量产SUVARCFOXT正式首发,现已开启预订,预订价格28万元起。图自ARCFOX官网IT之家了解到,ARCF……华为HiCharger直流快充模块发布最大功率30kW感谢IT之家网友软媒用户1855085的线索投递!IT之家4月25日消息昨日,华为以线上发布会形式面向全网发布了HUAWEIHiCharger直流快充模块。秉承可靠高效、……Uber推出WorkHub帮助司机找到共享职位IT之家4月7日消息据Engadget报道,Uber今天推出了WorkHub,旨在帮助Uber司机找到其他的共享职位的就业机会。图自GettyImagesIT之家获……特斯拉展示如何用Model3零部件打造一台呼吸机IT之家4月6日消息据TechCrunch报道,日前特斯拉在YouTube发布视频,展示了用Model3的零件构建呼吸机原型的过程。IT之家了解到,此前ElonMusk表……我劝你从良,新能源车能买吗?大家好,我是验选车猫哥,相信很多人看完标题又要喷我了,新能源车怎么就不能买了,吃你家大米了?特斯拉负面新闻缠身还能实现销量增长,五菱宏光MINIEV月销轻松过万,难道买这些车的……萨尔瓦多炒比特币据估计已浮亏1000万美元最近的加密货币暴跌不仅影响了散户和机构投资者,也影响了唯一一个将比特币作为法定货币的国家萨尔瓦多。在该国总统纳伊布布克利的带领下,萨尔瓦多政府已购买了至少1391枚比特币……如何在3秒内吸引到用户的注意力?营销常谈论要遵循3秒钟原则,意思是品牌想要在极其有限的时间里去吸引用户的注意力,需要给用户提供一个继续了解下去的理由,以便实现品牌广告信息的传递。随着消费者的注意力不断被……2020年马斯克和特斯拉的11个承诺与进展1月19日早间消息,据报道,众所周知,埃隆马斯克(ElonMusk)是最敢说的企业领导人,同时还是一位重度Twitter爱好者,他经常会在社交媒体平台上宣布一些大胆的计划。……
LG新能源IPO将募集超107亿美元,每股定价30万韩元vivoS9全球首发旗舰级天玑1100,轻薄自拍旗舰上市未来经济发展模式共享经济关于阿里log4j2漏洞上报问题,给阿里说句公道话接连暗示秘密武器盘点华为P40手机摄影真功夫燃料电池的发展前景如何?太空出差三人组回家,民族品牌成功迈向航天领域,华为小米上榜AMD3600XT对比3600升级了多少?游戏实测证明,游戏你们要的华为P50来啦Java,实例化对象,四种方式,new关键字clone反射反华为路由器AX3Pro悄然换芯高通凌霄方案混合出货是时候告诉年轻人什么是荣耀锐科技了
去一趟朝鲜花了5000元,旅游说出感想跟想象中的不一样关于我们的运动会的小学作文滑雪男孩女孩手机工具哪个好红极一时的智能电视为何跌下神坛?不解决这些,终被淘汰查媳妇的微信删除的聊天记录(怎么样查找微信删除的聊天记录)优秀五一劳动节日记300字范文业务员辞职信能在电脑上查微信聊天记录吗(微信聊天记录去哪里查)孕37周和孕39周出生的新生儿,最大的区别是这个混沌十大灵根排行榜人参果无人不知,第三据说曾灵力无敌

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形