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

html5网站多少钱辽宁网站建设公司电话

html5网站多少钱,辽宁网站建设公司电话,培训心得体会100字,秦皇岛城乡建设局网站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.zqtcl.cn/news/479569/

相关文章:

  • 金融直播间网站开发专业定制网页设计
  • 装饰公司网站开发c 网站开发实例教程
  • 专业层析成像代做网站网站建设收获
  • saas云建站平台源码附近那里有做网站的
  • 网站开发接口成都学校网站建设
  • 商城网站策划火星建站和八亿建站
  • 如何使用模板做网站php精品网站建设
  • 建设一个网站的具体流程职业培训机构需要什么资质
  • 网站怎么做弹幕播放器自助免费网站制作
  • 网站咨询弹窗是怎么做的网站建设的目标客户
  • 搞好姓氏源流网站建设Wordpress 商城主题过于臃肿
  • 如何网站客户案例上海网站备案查询
  • 沈阳大熊网站建设制作北京门户网站制作公司
  • 如何制作自己的网站免费最好的建站平台
  • 自己网站做电子签章有效么网站的规划与建设案例分析
  • 945新开传奇网站深圳动画营销推广的原因
  • 网站制作加盟网站推广 知乎
  • 广西东晋建设有限公司网站电商详情页模板免费套用
  • dedecms 做影网站商丘家居网站建设
  • 七里港网站建设商城购物网站有哪些模块
  • 中英网站怎么做网站域名的作用是什么
  • 网站建设开题报告ppt模板重庆建设工程信息网址
  • 做个什么类型网站百度云资源链接分享群组
  • 商务网站建设的主流程西安建设局网站
  • 邢台营销型网站建设做网站的保证承诺
  • 关于茶叶的网站模板免费下载wordpress多边形按钮
  • 贵阳市网站建设手工制作花
  • 娄底哪里做网站免费永久不限空间
  • 网站标签怎么做wordpress 后台模板
  • 内江移动网站建设网站内部链接的作用有哪些