首页 > 其他分享 >初始化列表

初始化列表

时间:2023-02-12 15:34:29浏览次数:47  
标签:初始化 成员 列表 阶段 构造函数 赋值

初始化列表

构造函数的执行可以分成两个阶段:初始化阶段和计算阶段(初始化阶段先于计算阶段)。

l 初始化阶段:全部的成员都会在初始化阶段初始化。

l 计算阶段:一般是指用于执行构造函数体内的赋值操作。

构造函数除了参数列表和函数体之外,还可以有初始化列表。

初始化列表的语法:


类名(形参列表):成员一(值一), 成员二(值二),..., 成员n(值n)

{......}

注意:

1)如果成员已经在初始化列表中,则不应该在构造函数中再次赋值。

2)初始化列表的括号中可以是具体的值,也可以是构造函数的形参名,还可以是表达式。

3)初始化列表与赋值有本质的区别,如果成员是类,使用初始化列表调用的是成员类的拷贝构造函数,而赋值则是先创建成员类的对象(将调用成员类的普通构造函数),然后再赋值。

4)如果成员是类,初始化列表对性能略有提升。

5)如果成员是常量和引用,必须使用初始列表,因为常量和引用只能在定义的时候初始化。

6)如果成员是没有默认构造函数的类,则必须使用初始化列表。

7)拷贝构造函数也可以有初始化列表。

8)类的成员变量可以不出现在初始化列表中。

9)构造函数的形参先于成员变量初始化。

标签:初始化,成员,列表,阶段,构造函数,赋值
From: https://www.cnblogs.com/tgfoven/p/17113867.html

相关文章

  • Go语言学习11-数据初始化
    数据初始化书接上篇,我们了解了Go语言的指针类型。那到目前为止,Go的数据类型就差不多介绍完了,下面就是讲解更优雅地对Go数据的初始化了。这里的数据初始化是指对某个......
  • Java 初始化块
    目录1、初识初始化块2、实例初始化块和构造器3、类初始化块1、初识初始化块Java使用构造器来对单个对象进行初始化操作,使用构造器先完成对整个Java对象的状态初始化,然......
  • react hook学习4-usestate的惰性初始化
     ......
  • 前端项目实战30-多加一个列表表示详情
    <Cardstyle={{marginTop:"24px"}}><Row><Colspan={8}>所属品类:{styleDeatil?.categoryName}</Col>......
  • C++中的默认初始化
    当没有通过初始化器构造一个对象时,那么将会执行默认初始化。语法Tobject;newT;默认初始化出现在以下几种情况中当一个自动,静态,或者线程存储周期的变量声明......
  • 【前端性能优化】长列表优化
     1什么是长列表?1.1概念前端的业务开发中会遇到一些数据量较大且无法使用分页方式来加载的列表,我们一般把这种列表叫做长列表。1.2参考案例比如淘宝网的商品列表页,一......
  • 案例-列表查询-代码实现
    案例-列表查询-代码实现这个案例只需要index.jsp和list.jsp页面(在博客后面有)配置文件driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql:///db2username=roo......
  • 虚拟键VK值列表
     键盘VK键值列表  /*VirtualKeys,StandardSet*/ VK_LBUTTON                   0x01VK_RBUTTON     ......
  • 案例-需求分析&设计、环境搭建、列表查询_分析
    案例-需求分析&设计1.需求:用户信息的增删改查操作2.设计:1.技术选型:Servlet+JSP+MYSQL+JDBCTempleat+Duird+BeanUtilS+tomcat2.数据库设计:......
  • c语言之遗漏---标准C的标记化结构初始化语法
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文发布于2015-12-2919:22:14,现用MarkDo......