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

h5网站怎么做自己开公司需要多少资金

h5网站怎么做,自己开公司需要多少资金,网站维护年费,从化电子商务网站建设目录: 一、const成员函数 二、初始化列表 三、类型转换 正文 一、const成员函数 (1)将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。至于为什么这么放是语法规定。 (2&a…

目录:

一、const成员函数

二、初始化列表

三、类型转换


正文

一、const成员函数

(1)将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。至于为什么这么放是语法规定。

(2)const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进⾏修改。例如const 修饰Date类的Print成员函数,Print隐含的this指针由 Date* const this 变为 const

Date* const this

大家可能会疑惑为什么C++祖师爷在设计this指针的时候不直接加上呢?这样设计是有他的道理,因为加了const指针指向的内容就不能改变,假设要用this指针插入修改数据将会是很大的坑。这涉及到权限放大缩小问题。

如下图(1)对象d1调用类函数Print要取出d1的地址传给this指针,d1的地址是const Date*而Print中this类型是Date*,原本d1加const不能被修改,传给this后可以被修改这是权限放大,编译会报错。所以如果硬要传,this也得加const如(2)中所示权限平移。给this指针加const也有个好处,权限缩小,可变的对象可以传给不可变的指针。因此所有不修改成员变量的成员函数都建议加const修饰。

二、再探构造函数——初始化列表

【C++】构造与析构函数_c# 析构函数 c++析构函数-CSDN博客

(1)之前要初始化自定义类型编译器会调用它自己的默认构造,若是没有默认构造编译器会报错。如果自定义类型没有默认构造又要进行初始化还有一种方式就是初始化列表,初始化列表的使用方式是以⼀个冒号开始,接着以逗号分隔的数据成员列表,每个"成员变量"后面跟⼀个放在括号中的初始值或表达式。

(2)每个成员变量在初始化列表中只能出现⼀次,语法理解上初始化列表可以认为是每个成员变量定义初始化的地方。(这点很重要!!

为什么会有初始化列表的出现?用类型实例化对象是对对象整体开空间,如果我们要对对象里的成员单独开辟空间就要用到初始化列表,因为初始化列表是每个成员变量定义初始化的地方。而下面三种类型变量一定要走初始化列表

(3)引用成员变量,const成员变量,没有默认构造的类类型变量,必须放在初始化列表位置进行初始化,否则会编译报错

引用和const成员变量只有一次改变的机会就是在定义的时候,没有默认构造的类型变量在调用构造函数时要自己传参调用,也要走初始化列表进行传参调用。

当成员变量有自定义类型并且没有默认构造函数,其在初始化需要自己传参调用

(4)C++11⽀持在成员变量声明的位置给缺省值,这个缺省值主要是给没有显⽰在初始化列表初始化的成员使⽤的。

例如,_popst有缺省值了就没有显⽰在初始化列表初始化;_pushst有给缺省值,但在初始化列表也有显示给就用初始化列表的2000。

如果初始化列表没有显⽰初始化,默认就会⽤这个缺省值初始化

(5)尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会走初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。如果你没有给缺省值,对于没有显⽰在初始化列表初始化的内置类型成员是否初始化取决于编译器,C++并没有规定。对于没有显⽰在初始化列表初始化的⾃定义类型成员会调⽤这个成员类型的默认构造函数,如果没有默认构造会编译错误。

(6)初始化列表中按照成员变量在类中声明顺序进⾏初始化,跟成员在初始化列表出现的的先后顺序⽆关。建议声明顺序和初始化列表顺序保持⼀致。

例题:aa传给this指针,1传给a。因为初始化列表有显示给,声明的缺省值就不起作用,按声明的顺序_a2先声明所以初始化列表也先执行_a2,_a2用_a1初始化,此时的_a1还没定义所以_a2初始化是编译器随机分配(_a1、_a2为内置类型)接着定义_a1为1。

图表总结:

三、类型转换

(1)C++⽀持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数

我们用类实例化对象时,会根据我们给的参数个数调用对应的构造函数,这期间会发生类型转换。如下图,1是内置类型,aa1是自定义类型不能直接用其构造aa1,先用1构造出一个A类型放在临时对象中(临时对象具有常性),再用这个临时对象拷贝构造aa1。编译器遇到连续构造+拷贝构造会优化为直接构造。

(2)构造函数前⾯加explicit就不再⽀持隐式类型转换,内置类型转换为类类型对象,需要有相关内置类型为参数的构造函数。

aa4不能直接引用1是因为用1构造出一个A类型放在临时对象中,临时对象具有常性不能改变而引用时发生权限放大编译器报错,只要在类型前加上const权限平移就可以进行引用了。


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

相关文章:

  • 从网络营销角度做网站友情链接多少钱一个
  • 汽车网站哪个好珠海新盈科技有限公 网站建设
  • 阿里云可以建网站吗济南网络推广公司
  • 展示营销型网站肥料网站建设
  • 无锡住房和城乡建设局网站旅游网站后台模板
  • 佛山网站建设十年乐云seo3d演示中国空间站建造历程
  • 网站打开速度突然变慢的原因北京网站建设方案软件
  • 碧辉腾乐 网站建设石家庄建设网站的公司
  • dedecms模板站源码wordpress附件图标
  • 电商网站经营性备案wordpress免费源码
  • 密云建站推广品牌查询网官网查询
  • 有关宠物方面的网站建设方案正规做网站
  • 购物网站网页模板网站建站制作
  • 网站建设预算表样本杭州互联网网站定制公司
  • 怎么免费创建自己的网站濮阳网站建设电话
  • 如何在网站找做贸易的客户佛山网站建设制作公司
  • 东莞毛织厂家东莞网站建设wordpress 所有标签
  • 校园网站建设与管理特殊字体生成器
  • 编辑网站教程注册网站查询系统
  • 永州内部网站建设公司网站开发设计的地域分析
  • 免费奖励代码网站重庆教育建设有限公司网站首页
  • 安徽省建设厅执业资格注册中心网站深圳设计公司取名
  • 用html做班级网站游戏网站建设收费明细
  • 外汇直播网站建设开发西山区建设局网站
  • 建站之星网站成品分离王野天的照片
  • 自己做网站什么网站比较好英文网站如何做
  • 南通市住房城乡建设局网站网站域名备案需要多长时间
  • 创建网站的准备哪家做网站比较好
  • 这几年做那个网站能致富网站推广公司就去柚米
  • 东晓南门户网站制作青岛房产网链家