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

普通网站seo系统培训课程

普通网站,seo系统培训课程,建手机号码的网站,网站建设要写代码吗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.tj-hxxt.cn/news/97925.html

相关文章:

  • 用discuz做门户网站网站关键词排名优化价格
  • 网站权重怎么提升抖音搜索引擎推广
  • 广州智能建站软件百度收录入口在哪里查询
  • 宝安led行业网站建设seo求职
  • 网站备案信息的核查方式seo快速排名软件网址
  • 做网站写代码好还是模板广告公司业务推广
  • 网站域名怎么购买吗网络营销服务公司
  • 微信网站建设热线seoul是什么品牌
  • 做淘宝任务赚钱的网站企业网络推广最简单方法
  • 网站建设需要会什么百度seo最成功的优化
  • 营销策划书案例seo综合查询
  • 如何用ssm框架做网站网站推广的营销策划方案
  • 建设部执业考试网站外贸建站优化
  • 做网站送的小程序有什么用如何做互联网营销推广
  • 免费网站建设自助建站微信营销软件哪个好用
  • 如何在外管局网站做延期收汇投广告哪个平台好
  • 一个人做网站 知乎营销推广的公司
  • 西宁网站托管优化大师官方免费下载
  • 网站的网站制作公司邯郸seo优化
  • wordpress使用又拍云后西安seo网站排名
  • 上海网站建设网站开发网站制作教程视频
  • 什么网站可以找免费模板南宁seo收费
  • wordpress模板搜索功能404甘肃新站优化
  • 句容建设局网站丈哥seo博客
  • 广州网站建设 易企建站公司网站seo设计方案案例
  • 免费1g网站aso优化技术
  • 动态网站开发商城网站长沙企业seo服务
  • 厦门网站建设满山红百度如何推广广告
  • 全国做网站公司排名免费域名注册平台有哪些
  • 做视频网站赚做视频网站赚优就业seo