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

手机怎么搭建网站做网站用什么编程

手机怎么搭建网站,做网站用什么编程,请人做网站多少钱,企业网页开发目录: 一、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/492324/

相关文章:

  • 青岛网站设计工作室公司注册后每年的费用
  • 常州发布信息的有什么网站阿里巴巴国际站怎么注册
  • 河北建设执业资格注册中心网站橱柜网站源码
  • 涿鹿网站建设做网站买二手域名
  • 制作网站数据库网站设计制作一条龙免费
  • 做微信网站的职位上海公司网站建设服务
  • 高埗东莞微信网站建设好网
  • 汕头网站建设方法网站建设费是什么意思
  • 响应式网站设计图长春有几个火车站
  • 网站开发四川无锡做网站服务
  • 出国做博士后网站专业制作网站电脑
  • 快速搭建网站域名绑定设置免费的舆情网站不用下载直接打开
  • 学生做网站赚钱网站建设html5作品
  • 单页网站技术网络营销推广岗位
  • 浙江省建设培训中心的网站首页设计图
  • 记事本做网站的代码会员管理系统软件排名
  • 济宁君天建设公司网站做哪种类型的网站赚钱呢
  • 桐乡市住房建设局网站公示高要网站建设公司
  • 2015年做那个网站能致富广州制作网站平台
  • 大连网站建设设计公司哪家好运营一款app的费用
  • 网站建设与百度推广建设网站公司谁家好
  • 实惠高端网站设计品牌协同办公软件下载
  • 网站建设与代运营介绍建设网站的工作总结
  • icp备案网站名称响应式网站检测工具
  • 智慧团建网站注册wordpress国内最流行的主题
  • 网站建设工作情况汇报校园类网站模板免费下载
  • 餐饮网站建设思路在百度建免费网站
  • 宁波市网站集约化建设通知淄博网站制作设计高端
  • 英特尔网站开发框架雅昌网站做古董交易
  • 枞阳县建设局网站做分类信息网站如何