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

帝国cms调用网站地址阳江招聘网娱乐业

帝国cms调用网站地址,阳江招聘网娱乐业,视频分销网站建设,wordpress标签手册https://www.cnblogs.com/rickyk/p/4238380.html 大家都知道C中类的成员函数默认都提供了this指针#xff0c;在非静态成员函数中当你调用函数的时候#xff0c;编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C灵活性下面#xff0c;类还具备了静态成员和静…https://www.cnblogs.com/rickyk/p/4238380.html 大家都知道C中类的成员函数默认都提供了this指针在非静态成员函数中当你调用函数的时候编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C灵活性下面类还具备了静态成员和静态函数即 class A { public:static void test(){m_staticA 1;} private:static int m_staticA;int m_a }; 此时你的test函数只能去访问m_staticA成员而不能去访问m_a。同学可能会问这算什么问题问题都是在应用场景中才能体现的我一开始也是不以为意直到我遇到了回调函数这个烦人的问题我才真正静下心来去考虑这个知识点。 先简单说下回调在座的应该都知道回调的含义在C中回调主要体现就是回调函数当然C中也有仿函数等其他用法抛开这些单纯在回调函数这个点上我们进行如下讨论。 由于C类的成员函数都隐含了this指针如果我直接注册比如 typedef void (A::*FunPtr)(); FunPtr p A::hello; p(); 此时程序会报错提示信息是你缺少一个this指针意味着你要真的想使用p你必须有一个分配好空间的实例才能来调用 typedef void (A::*FunPtr)(); FunPtr p A::hello;A a; A *pA new A();(a.*p)(); (pA-*p)(); 当然如果仅仅是对C的类静态函数进行回调函数注册你是不需要考虑this指针的 typedef void (A::*FunPtr)(); FunPtr p A::test; p(); 但问题就是你此时的静态函数是不能拥有你的成员变量的看到了吧问题来了。面对这种需求我们就真正应该静下心来好好想想究竟如何才能让静态函数去访问非静态成员变量这个问题了。 方法一 有一个很取巧的办法就是在静态函数的形参表里加上实例的地址也就是 class A { public:static void test(A *a){a-m_a 1;}void hello(){} private:static int m_staticA;int m_a }; 这样在你回调函数的时候你可以通过这个来让本身不能访问成员非静态变量的静态函数太拗口来访问非静态成员变量。 方法二 其实这个方法在GLIB中用的很多就是放上全局变量地址即 A g_a;class A { public:static void test(){g_a.m_a 1;}void hello(){} private:static int m_staticA;int m_a }; 这种方法我们了解就好全局变量我们并不推荐。 方法三 大家都知道静态成员函数不能访问非静态成员但别忘了他们可以访问静态成员也就是说如果我们的这个类是个单例我们完全可以在创建的时候把this指针赋值给那个静态成员然后在静态成员函数内部就可以放心大胆的使用了。 class A { public:A(){m_gA this;}static void test(){m_gA.m_a 1;}void hello(){} private:static int m_staticA;static A *m_gA;int m_a }; 方法四 和方法一比较像但他的方向思想更多的是针对内存块这个概念意思就是在静态函数的形参比加上一个void *的内存首地址然后在内部做转换 class A { public:static void test(void *pData){A *a (A *)pData;a-m_a 1;}void hello(){} private:static int m_staticA;int m_a };A a; test(a); 如上我整理了4种方法当然方法还有很多其实绕了这么大远路我们的希望就是不破坏回调函数整洁的函数接口加上自己的实例指针而做的妥协如果你更喜欢通过改变接口或者通过用Java类似的interface方式来实现那也没有问题这里主要就是提供给大家一个思路C确实很灵活我们要用好这把双刃剑
http://www.sadfv.cn/news/115626/

相关文章:

  • 大连企业做网站公司排名wordpress提醒用法
  • 单位网站建设费用什么会计科目广西桂林旅游攻略
  • 网站推广排名哪家公司好在网站文字上做超链接
  • 温州网上推广什么网站好分销平台app
  • 做网站gzip压缩汕头企业网站建设服务
  • 便宜做网站怎么样国内跨境电商公司排行榜
  • 保定设计网站做视频网站赚钱吗
  • 关方网站买微信成都市住房和城乡建设厅网站
  • 四川手机响应式网站建设设计网站建设钱
  • 中山网站上排名营销型网站建设+课程
  • 织梦网站自动跳转手机网站做网站怎么宣传运营
  • 视频购物网站开发方案网站建设专业如何做到廉洁自律
  • 网站建设廾金手指专业壹柒太原最新建设
  • 番禺龙美村做网站什么是网站子目录
  • 国内工业设计网站产品开发流程文件
  • 广州品牌网站开发北京怎样做企业网站
  • 阆中 网站建设企业 办公 网站模板下载
  • 东莞网站关键词优化淘宝网站建设的策划书
  • 建筑企业登录建设厅网站密码js代码放wordpress哪里
  • vps 网站权限模板网站建设平台
  • 深圳常桉网站建设网站注册备案查询
  • 凡科小程序建站官网网站备案分为几种
  • 电商网站设计网络服务小型电子商务网站规划建设方案
  • html5 手机端网站wordpress模板如何修改
  • 中山外贸营销网站建设h5页面制作网站官网
  • 做网站可以用php吗个人网页设计概述
  • 合肥建设网站首页网站开发综合实训报告
  • 运城建设银行网站点黄冈网站建设哪家好
  • 做网站用到的单词中国网站空间
  • ih5 做视频网站火车采集器 wordpress