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

网站建设和平面设计旅游网站在提高用户体验方面应做哪些工作

网站建设和平面设计,旅游网站在提高用户体验方面应做哪些工作,网站建设网站维护,wordpress 报表一、转换操作符的定义 转换操作符是一种特殊的类成员函数 ,它定义将类类型值转变为其他类型值的转换,转换操作符在类定义体内声明,在保留字operator之后跟着转换的目标类型,转换函数采用如下通用形式: operator type(…

        一、转换操作符的定义

        转换操作符是一种特殊的类成员函数它定义将类类型值转变为其他类型值的转换,转换操作符在类定义体内声明,在保留字operator之后跟着转换的目标类型,转换函数采用如下通用形式:

operator type();

        这里,type表示内置类型名、类类型名 或 由类型别名所定义的名字,本文讨论转换普通函数指针类型、转换类的成员函数指针类型

        二、转换普通函数指针类型

        在类内定义类型别名,定义转换函数,把类对象转换为普通函数指针,代码如下:

#include <iostream> void f(){   //普通函数std::cout << "f()";
}struct A{typedef void (*fp)(); //类型别名//using fp = void (*)(); //C++11标准operator fp (){       //转换函数//A类对象转换为普通函数指针return ::f;}
};int main()
{	A a;	A::fp p = a;	//A作用域的类型别名fp//将对象a转换为普通函数指针p();return 0;
}

        三、转换类的静态函数为普通函数指针类型

        因为运算符的优先级,函数指针解引用要加括号

#include <iostream> struct A{typedef void (*fp)(); //类型别名//using fp = void (*)(); //C++11标准operator fp (){       //转换函数//A类对象转换为普通函数指针return A::f;}static void f(){  std::cout << "static void A:: f()\n"; }//静态函数
};int main()
{	A a;	A::fp p = a;	//A作用域的类型别名fp//将对象a转换为普通函数指针//A::f();//p();(*p)();//运算符优先级,要加括号return 0;
}

        四、转换类的成员函数指针类型

        .*和->*两个操作符,能够将成员指针绑定到实际对象,左操作数必须是类类型的对象或类类型的指针,右操作数是该类型的成员指针

#include <iostream> struct A{using fp = void (A::*)();//类成员函数指针operator fp (){ //转换函数//A类对象转换为A类成员函数指针return A::f;}void f(){ std::cout << "A::f()\n"; }	
};int main()
{	A a;A::fp p = a;    //A对象a转换为类的成员函数指针类型(a.*p)();  		//对象a使用操作符.*调用成员函数fA *ap = new A;(ap->*p)();     //类类型指针使用操作符->*调用成员函数delete ap;return 0;
}

        可以把私有的成员函数转换为成员函数指针,因为转换函数是公有的,转换函数可以在类内访问私有成员,我们把对象转换一下,达到了对象可以调用私有的成员函数目的,看起来真的好神奇

#include <iostream> struct A{using fp = void (A::*)();//类成员函数指针operator fp (){ //转换函数//A类对象转换为A类成员函数指针return A::f;}
private:void f(){ std::cout << "A::f()\n"; }	//私有的成员函数
};int main()
{	A a;A::fp p = a;    //A对象a转换为类的成员函数指针类型(a.*p)();  		//对象a使用操作符.*调用成员函数freturn 0;
}

        五、成员函数指针作为函数的参数,类对象隐式转换

#include <iostream> struct A{using fp = void (A::*)();//类成员函数指针operator fp (){ //转换函数//A类对象转换为A类成员函数指针return A::f;}
private:void f(){std::cout << "A::f()\n";}
};void test( A::fp p){ //成员函数指针作为函数参数A b;( b.*p )();      //成员函数指针,调用成员函数
}int main()
{	A a;test(a); //类型转换//A对象a转换为A类成员函数指针return 0;
}

        六、不用转换操作符,只用公有的成员函数指针变量,对象一样可以访问私有成员函数 

#include <iostream> struct A{using fp = void (A::*)();//类成员函数指针fp p = A::f; //公有成员变量
private:      //私有的成员函数void f(){std::cout << "A::f()\n";}
};int main()
{	A a,b;( a.*(a.p) )();//( a.*(b.p) )();  //说明p是对象的就可以	return 0;
}

http://www.yayakq.cn/news/319218/

相关文章:

  • aspx网站 整站抓取互联网创业项目平台
  • 试玩平台怎么做网站安卓优化软件
  • 区块链网站怎么做邯郸专业做wap网站
  • 襄阳做网站的公司有哪些网站没有备案做竞价吗
  • 魏县网站建设西丽网站设计
  • 如何降低网站相似度手机网站建设林肖
  • 网站模块建设方案建设教育协会官方网站
  • 新手初做网站邢台网红打卡地
  • 公司网站做的好的公司网站建设 好牛
  • 深圳专业营销网站公司seo基础入门视频教程
  • 深圳网站建设费用是多少成武网站建设
  • 网站建设数据库是什么意思室内设计方案介绍
  • 各地城乡建设网站更新深圳华强北是干什么的
  • phpnow 搭建本地网站无为县住房建设局网站首页
  • 城建公司建设网站基础资料网站开发工程师的要求
  • 做IT的需要别人打开网站吗二手网站建设模块
  • 七牛云wordpress缓存附件蜘蛛seo超级外链工具
  • 网站开发设计选题背景vs 2017网站开发php
  • 滨江区住房和城乡建设局网站大兴做网站
  • 做pop网站小程序制作软件费用
  • 网站开发公司薪酬绩效济南网站建设团队
  • 浦口区建设网站西安招标网
  • 甘肃省住房和城乡建设厅官方网站酷家乐手机版
  • 网站没收录的几大原因一级a做爰片阿v祥仔网站
  • 站长之家西安seo顾问培训
  • 网站开发公司哪里好百度指数如何分析
  • 怀集住房和城乡建设部网站百度提交网站收录入口
  • 无锡网站制作联系方式fancy wordpress
  • wordpress零基础建站教程视频wordpress在线课程主题
  • 自己做的网站怎么爬数据电影爱好网