C艹 4 构造函数

构造函数作用

  • 在对象被创建时使用特定的值构造对象,把对象初始化为一个特定的初始状态

构造函数形式

  • 函数名与类名相同
  • 不能定义返回值类型 不能有return语句
  • 可以有形参也可没有
  • 可以为内联函数
  • 可以重载
  • 可以带默认参数值

调用时机

  • 在对象创建时被自动调用
  • 默认构造函数:调用时可以不需要实参的构造函数 不能同时出现在一个类中
  • 若未定义构造函数 编译器将自动生成一个默认构造函数:
    1.参数列表为空 不为数据成员设置初始值
    2.基本类型的数据默认初始化的值不确定
  • “=default”
    -若程序中已定义构造函数 则不再隐含生成默认构造函数
    若依然希望生成默认构造函数,可以用 =default

委托构造函数

  • 委托构造函数使用类的其他构造函数执行初始化过程
  • 可保证代码一致性 只要在一处修改 其他委托构造函数一并修改

复制构造函数

形参为本类的对象引用,用一个已存在对向来初始化同类·新对象

  • 用const常引用读取其中数据 但不可对象修改 可保证实参安全性
    “=delete”
    不希望对象被复制构造:编译器不生成默认复制构造函数

析构函数

做善后工作 完成对象被删除前的一些清理工作
在对象的生存期结束时系统自动调用
若未声明 则编译器自动生成 其函数体为空

类的组合

类中成员是另一个类的对象 可在已有抽象基础上实现更复杂的抽象

类组合的构造函数设计

不仅要初始化本类中基本类型成员数据,也要初始化对象成员
声明形式:
类名::类名(对象成员所需的形参,本类成员形参):
对象1(参数),对象2(参数),…

初始化次序:先是构造函数初始化列表中列出的成员 次序是成员在类体中的次序
成员对象调用函数顺序:定义顺序

前向引用声明

  • 类应先声明后引用
  • 若需在声明前引用,则应进行前向引用声明(它只为程序引入一个标识符,具体声明\类体在其他地方)
  • 注意:只能用被声明符号,不能涉及细节

UML简介

三个基本
-事物
-关系
-图

结构体

是一种特殊形态的类
定义主要用来保存数据 没有什么操作的类型

初始化

  1. 全部数据成员都为公共
  2. 没有用户定义的构造函数
  3. 没有基类和虚函数
    则可这么初始化:
    类型名 变量名={成员数据1初值,成员数据2初值,…};

联合体

目的:共用存储空间
union 联合体名称{
公有成员
protected:
保护型成员
private:
私有成员
};
枚举类定义
语法:enum class 枚举类型名:底层类型{枚举值列表};
好处:
强作用域:将作用域限制在枚举类中 避免重名
转换限制:枚举类对象不可以与整形隐式的互相转换
可指定底层类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值