C++入门----初始化列表 & static成员


一、初始化列表

构造函数体赋值:
在这里插入图片描述
虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称作为赋初值而不能称作初始化因为初始化只能初始化一次,而构造函数体内可以多次赋值。

初始化列表

初始化列表:真正初始化的位置

形式:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式

在这里插入图片描述
举例:
在这里插入图片描述
注意:

  1. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)

  2. 类中包含以下成员,必须放在初始化列表位置进行初始化
    1)引用成员变量
    在这里插入图片描述2)const成员变量
    在这里插入图片描述
    3)自定义类型成员(该类没有默认构造函数)
    在这里插入图片描述
    若有默认构造函数,在初始化列表没有初始化也是正确的。

  3. 尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化。

  4. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关。
    在这里插入图片描述

  5. 对于单个参数的构造函数,还具有类型转换的作用。
    在这里插入图片描述
    上述代码可读性较差,explicit修饰构造函数,将会禁止单参构造函数的隐式转换。
    在这里插入图片描述

二、static成员

静态成员和类的普通成员一样,也有public、protected、private3种访问级别,也可以具有返回值

1. static成员是所有对象共享

在这里插入图片描述

2. static成员变量,必须在类外初始化

初始化时,不添加static关键字
在这里插入图片描述

3. static成员的访问形式

1)对象.static成员

在这里插入图片描述

2) 类名+ :: +static成员

在这里插入图片描述

4. 静态成员函数没有隐藏的this指针

this指针,指向当前调用此函数的对象。因为static可以通过类名访问,通过类名访问时,没有对象,this就没有指向,所以静态成员函数没有隐藏的this指针。
在这里插入图片描述在这里插入图片描述
总结:

  1. 静态成员函数不可以调用非静态成员函数

  2. 非静态成员函数可以调用类的静态成员函数

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值