C++学习笔记-类

构造函数

类通过一个或者几个特殊的成员函数控制对象的初始化过程

  • 构造函数的名字和类名相同,没有返回类型
  • 构造函数有一个可能为空的参数列表(无参构造函数)和一个可能为空的函数体
  • 不同构造函数之间的参数数量必须不同或参数类型有区别
  • 构造函数不能被声明成const

构造函数初始值列表

如果成员是const、引用,或者是属于某种未提供默认构造函数的类类型,必须通过构造函数初始值列表为这些成员提供初值。

  • 最好成员声明的顺序和初始化顺序一致

访问控制

class关键字与struct定义类唯一的区别是默认的访问权限

  • class private
  • struct public

友元

类可以允许其它类或者函数访问它的非公有成员,friend关键字开始的函数声明语句

  • 每个类负责控制自己的友元类或者友元函数,友元不具有传递性
  • 友元声明只能出现在类定义的内部,类内具体位置不限
    在这里插入图片描述

显示构造函数

  • 关键字explicit只对一个实参的构造函数有效,需要多个实参的构造函数不能用于执行隐式转换,只能在类内生命构造函数时使用explicit关键字

  • 隐式转换发生在拷贝初始化(=),直接初始化不能用于explicit

在这里插入图片描述

聚合类

用户可以直接访问其成员

  • 所有成成员都是public
  • 没有定义任何构造函数
  • 没有类内初始值
  • 没有基类,没有virtual函数
    在这里插入图片描述

类的静态成员

  • 静态成员函数不与任何对象绑定在一起,不包含this指针,静态成员函数不能声明为const
  • static关键字只出现在类内部的声明语句中
  • 类的静态成员不应该在类的内部初始化,但可以为静态成员提供const整数类型的类内初始值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值