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

找制作网站公司海拉尔网站建设

找制作网站公司,海拉尔网站建设,网站建设外文文献,网站后台怎么做友情链接目录 一、初始化列表 二、单参构造参数和explicit关键字 三、匿名对象 四、static成员 五、友元 六、内部类 一、初始化列表 之前我们在构造函数中写得还不错#xff0c;也没发现什么问题#xff0c;为什么C还有搞一个初始化列表呢#xff1f; 如下这段代码#x…目录 一、初始化列表 二、单参构造参数和explicit关键字 三、匿名对象 四、static成员  五、友元  六、内部类 一、初始化列表 之前我们在构造函数中写得还不错也没发现什么问题为什么C还有搞一个初始化列表呢 如下这段代码对于const类型和引用他们必须在初始化的时候就被定义而我们想在构造函数这个 {} 里面去初始化是不可行的。 C引入了初始化列表来帮助我们完成操作  初始化列表以一个冒号开始接着是一个以逗号分隔的数据成员列表每个成员变量后面跟 一个放在括号中的初始值或表达式。 初始化列表式每个成员定义的地方不管你写不写每个成员都要走初始化列表。  1. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次) 2. 类中包含以下成员必须放在初始化列表位置进行初始化 引用成员变量const成员变量自定义类型成员(且该类没有默认构造函数时) C11中还支持成员声明的地方给值这个值是缺省值缺省值会给到初始化列表初始化列表没有显示给值就会用这个缺省值。如下 注意初始化列表的初始化顺序跟成员声明的顺序有关跟列表顺序无关  第一步先初始化了_a 第二部是_b  最后才是_c 对于我们后续开发来讲尽量使用初始化列表初始化因为不管你是否使用初始化列表对于自定义类型成员变量 一定会先使用初始化列表初始化。 二、单参构造参数和explicit关键字 构造函数不仅可以构造与初始化对象对于单个参数或者除第一个参数无默认值其余均有默认值 的构造函数还具有类型转换的作用。 举例子下面的代码竟然可以将一个参数直接赋值给类对象这实际上也是构造函数的功劳因为构造函数只有单个参数。 对于43行代码编译器会自动用  2023  构造出一个临时的类对象类型转换再将这个类对象通过默认赋值重载给到d1。 这只适用于单个参数或者除第一个参数无默认值其余均有默认值。 但是C11添加了新特性可以支持多个参数。 使用 {}  来进行赋值。这个我们作为了解可以运行即可。 如果给Date类加上explicit关键字就会禁止单参构造函数类型转化因此代码就不能通过编译了 三、匿名对象 匿名对象就是没有对象名并且声明周期只在这一句代码的对象。 如果我们不需要这个类对象一直存在只需短暂使用那么用匿名对象会更好占用时间短暂因为析构很快并且写起来简洁 。 如下我们可以看到当这条语句执行完毕后匿名对象就已经析构了。 四、static成员  声明为static的类成员称为类的静态成员用static修饰的成员变量称之为静态成员变量用 static修饰的成员函数称之为静态成员函数。静态成员变量一定要在类外进行初始化 如下图所示static成员想在声明的时候初始化后面交给初始化列表去操作是不可以的。 我们需要放到类外面去定义如此才不会报错。 我们需要注意静态成员是所有类对象共有的他存放在静态区因此类对象的大小是不算静态成员的。如果有非静态成员那么类对象大小就全看非静态成员如果全是静态成员那么类对象大小就为1代表站位 我们的代码思路是构造一个类对象_a 从代码可以看到类对象a 和 aa他们的_a都是同一个。这可以作为一个类对象的计算器。 但是这里我们会发现想要调用Print()函数就必须要构造出类对象不管是临时的还是其他都得构造类对象但是这样一来我们的初心就变了_a 会发生改变那么有没有什么方法可以让我们能够简便的调用Print()并且不让_a发生改变呢 这就需要将Print()设置为静态函数了 静态函数只能调用静态的成员变量非静态的调不动。变成静态函数  _c  就会报错因为静态函数没有this指针而为啥静态成员_a能调得动呢还是因为 _a 是静态变量所有类成员都共用这一份因此可以调用。 我们去掉打印 _c 只看 _a我们可以直接用   类名 :: Print()  去直接打印不会发生_a的情况。 五、友元  友元函数可以直接访问类的私有成员它是定义在类外部的普通函数不属于任何类但需要在 类的内部声明声明时需要加friend关键字。 上一篇文章 日期类实现为了让日期类能够使用cout输出我们就使用了友元因为类函数第一个默认的参数是this指针下面代码虽然看起来out是第一个实际上是第二个参数。因此重载后想要运行就得是   d cout; ostream Date::operator(ostream out) 想要 cout d就得写成友元的形式 friend ostream operator(ostream out, const Date d); friend istream operator(istream in, Date d); 友元注意事项 友元函数可访问类的私有和保护成员但不是类的成员函数友元函数不能用const修饰友元函数可以在类定义的任何地方声明不受类访问限定符限制一个函数可以是多个类的友元函数友元函数的调用与普通函数的调用原理相同 友元不仅仅可以是一个函数还可以是一个类  如下在Date类里面创建了一个Time类对象但是你无法访问Time类的私有成员 但你只需在Time类上添加一个Date类的友元声明在Date类里面就可以访问到Time类的私有成员了。 友元类注意事项 友元类的所有成员函数都可以是另一个类的友元函数都可以访问另一个类中的非公有成员。友元关系是单向的       不具有交换性。 比如上述Time类和Date类在Time类中声明Date类为其友元类那么可以在Date类中直接访问Time类的私有成员变量但想在Time类中访问Date类中私有的成员变量则不行。友元关系不能传递       如果C是B的友元 B是A的友元则不能说明C时A的友元。 友元关系不能继承在继承位置再给大家详细介绍。 六、内部类 内部类的概念很简单   如果一个类定义在另一个类的内部这个内部类就叫做内部类。 如图B是A的内部类B类受A类域和访问限定符的限制其实他们两个是独立的类。 同时要注意去算A类对象的大小是不会管A类有没有内部类依然是看A类的成员变量。  要想创建B类的类对象需要通过A类的作用域去找。 内部类就是外部类的友元类 在B类中创建A类对象可以直接访问到A类的私有成员。
http://www.ihoyoo.com/news/29653.html

相关文章:

  • 长沙手机网站建设网络推广公司联系昔年下拉
  • 网站建设市场背景上海百度公司地址在哪里
  • 免费网站电视剧全免费赶集网网站建设分析
  • 没有域名的网站需要备案吗和孕妇做网站
  • 西安网站制作优化企业策划书格式及范文
  • 大型门户网站建设报价表汽车网站方案
  • 选择建设网站公司要注意什么问题网站仿静态
  • 石景山做网站数字化校园门户网站建设方案
  • 网站流量平台沈阳网页设计公司有哪些
  • 安卓和网站开发找工作专业网站建设定制公司
  • 网址导航类网站怎么做网站只做静态页面安全受到影响
  • 东莞网推广网站建设王烨重生
  • 做商业网站没有注册公司中国室内装饰协会证书查询
  • 网站 用php asp源码 比较好本地 安装 WordPress主题
  • 做网站卖东西赚钱吗爱奇艺的网站是用什么做的
  • 网站建设 慕课沈阳学校网站建设
  • 宁阳网站定制申请免费个人网站空间
  • 网站建设技术网站建小程序开发成本
  • 宁波正规网站建设使用方法网站建设和管理心得
  • 做衣服 网站松江网站建设博客
  • 网站跳出率的衡量标准wordpress慢 google
  • 关于做网站的合同网站的三大因素
  • 做营销型网站的公司南宁h5建站
  • 信誉好的o2o网站建设佛山网站建设咨询
  • 在线做logo印章网站相同网站名
  • 盛泽做网站国际企业邮箱
  • 做网站必须要数据库么焦作维科网站建设公司
  • 网站后期维护内容seo外链工具源码
  • 安装多个wordpress站点建筑网片用途
  • 北京网站搭建费用中国建筑业协会