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

购物网站做兼职WordPress的分類顯示插件

购物网站做兼职,WordPress的分類顯示插件,软文营销的宗旨是什么,电商C的成员变量指针和普通的指针没有什么大的区别,int类型成员变量的指针就是和int *, Foo类型的成员变量的指针就是Foo *,但是成员函数就不大一样了,主要是因为非静态成员函数实际上都隐藏这一个调用对象的指针的参数。 静态成员函数…

C++的成员变量指针和普通的指针没有什么大的区别,int类型成员变量的指针就是和int *, Foo类型的成员变量的指针就是Foo *,但是成员函数就不大一样了,主要是因为非静态成员函数实际上都隐藏这一个调用对象的指针的参数。
静态成员函数指针,和普通的C函数指针没什么两样
class Foo
{
public:
    static int foo();
};
int (*fp)() = Foo::foo();
因为静态成员函数的执行和类的对象无关,也没有隐藏的对象指针参数

非静态成员函数,因为有隐藏的对象指针参数,就有点不一样
class Foo
{
     int foo1();
     int foo2(long);
};
为了代码的简洁,最好用typedef先定义指针类型
typedef int (Foo::*fpType1)(); //Foo类返回类型为int,参数列表为空的成员函数指针类型
typedef int (Foo::*fpType2)(long); //Foo类返回类型为int,参数列表为long的成员函数指针类型
然后就可以声明指向成员函数的指针
fpType1 fp1 = &Foo::foo1;
fpType2 fp2 = &Foo::foo2;
通过成员函数调用的时候注意,因为非静态的成员函数执行实际上是需要一个类对象的
Foo f;
int result = (f.*fp1)();
或者通过对象指针
Foo f2 = &f;
int result2 = (f2->*fp1)();

类 对象的成员函数能够提供灵活的对成员函数的调用,今天写一个测试程序,为了这个测试程序的“扩展性”,研究成员函数指针花了一些时间,最后还是用别的方法 来实现“扩展性”。虽然C++提供了这种个功能,我觉得还是尽量不要使用的好,程序不大容易读,就算我懂,将来维护代码的同僚未必明白,所以成员函数指针,能不用还是不用的好。

那么如何解决这个问题,实现指针调用类的成员函数 也就是说将函数名作为另一个函数的参数?
1 在每个被调用函数之前加上static, 可以使成员函数脱离对象信息单独存在,虽然它属于这个类,但是没有附带上对象信息,但是前提是,static成员函数不能使用对象的信息(成员和函数)。
2 使用一个全局函数做中转,间接调用成员函数,如下代码修改Test3:
#include <stdio.h>
#include <iostream>
class Test3;
void _cdecl Helper(Test3 *test3);
class Test3
{
public:
void Memberfun1(void (*f2)(Test3 *))
 {
  f2(this);
 }
 void  Memberfun2()
 {
  std::cout<<"Calling Test3::Memberfun2 OK"<<'/n';
 }
 void Memberfun3()
 {
  //Memberfun1(Memberfun2);//出错
   Memberfun1(Helper);
 }
};
void _cdecl Helper(Test3 *test3)
{
 test3->Memberfun2();
}

int main()
{
 Test3 t3;
 t3.Memberfun2();
 return 0;
}
3 使用一个函数参数函数对象信息的static类型的成员函数中转,间接调用其它成员函数。
#include <stdio.h>
#include <iostream>
class Test3
{
public:
 static void _cdecl Helper(Test3 *test3)
 {
  test3->Memberfun2();
 }
void Memberfun1(void (*f2)( Test3 *))
 {
  f2(this);
 }
 void  Memberfun2()
 {
  std::cout<<"Calling Test3::Memberfun2 OK"<<'/n';
 }
 void Memberfun3()
 {
  Memberfun1(Helper);
 }
};

int main()
{
 Test3 t3;
 t3.Memberfun3();
 return 0;
}
由此可见,函数指针不能直接调用类的成员函数,因为成员函数指针和一般函数指针有着本质差别,因为成员函数带有很多对象信息。要解决调用的问题,应该使用static或者全局函数,实现间接调用。
http://www.yayakq.cn/news/508552/

相关文章:

  • 网站建设微信公众号小程序制作怎么在网络上做推广
  • 网站建设 工单西部数据网站管理助手
  • 网站首页广告图片伸缩代码又关闭安徽住房建设厅官网信息查询
  • 需要做网站的企业资源NextApp wordpress
  • 网站建设工作室 杭州网站建设公司一站通系统简单
  • 怎么建手机网站平台织梦网站怎么做seo
  • 工厂的网站在哪里做的商贸公司网站建设方案
  • 快速搭建网站视频手机网站切图
  • 互联网传媒 网站无锡网站的建设
  • 青岛正规公司网站建设公司株洲网站建设公司
  • 亚马逊中国网站建设目标永兴城乡住房建设部网站
  • ps网站子页怎么做的网站开发毕业设计摘要范文
  • 四川网站建设电话咨询输入网址一键生成app
  • 苏州专业建设网站cms仿站
  • e4a做网站软件我的小程序入口
  • 推荐一些外国做产品网站手机电脑网站建设短视频
  • 中国社交网站做多外国人的自媒体135手机版
  • 寺庙做网站个人主页是什么
  • 做坑人网站二维码网站的功能
  • 江西省网站备案wordpress笔记插件
  • 茂名网站建设推广wordpress调用标签工具
  • 网站开发到上线的流程如何做私人网页
  • 亲子网 网站正在建设中蓝海电商怎么做
  • 深圳网站开发公司 有哪些开发网站费用
  • 网站建设宣传素材宝塔怎么做两个网站
  • 网站时间轴有效的网站建设公司
  • 济南网站推广服务asp技术网站开发案例
  • 宁波做网站seo网站的模块怎么做
  • 做程序的网站网站建设需要哪些证
  • 品牌网站建设服务怎么做网站广告古董