八、1、class定义类时,所有成员默认属性为private;struct则默认为public
2、类的精华在于封装
九、构造与析构
1、初始状态是对象普遍存在的一个状态
2、与类名相同的成员函数叫构造函数,可以有参数,但没有任何返回类型的声明
3、 无参构造函数:当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空
拷贝构造函数:简单的进行成员变量的值复制
4、初始化列表对成员变量进行初始化:初始化的顺序与声明顺序相关;初始化列表优先于构造函数的函数体执行
5、类中的const成员变量只是一个只读变量
6、析构函数没有参数也没有任何返回类型的声明
十一、类的静态成员static
1、通过类名或对象名访问public静态成员;静态成员函数可以直接访问静态成员变量!
2、Type ClassName::VarName
3、类的普通成员函数都隐式包含一个指向当前对象的this指针
十二、操作符重载
1、关键字operator,本质是通过函数重载实现操作符重载;将操作符定义为全局函数
2、友元:通过friend可以开放权限
3、用成员函数重载操作符:比全局少一个参数,即左操作数;不需要用friend
4、当无法修改左操作数的类时,使用全局函数进行重载。
5、=,[ ],(),->操作符只能通过成员函数进行重载
6、通过一个占位参数来区分前置运算和后置运算
operator++(int) //obj++
operator++( ) //++obj
7、&&、||不要重载,因为他们是从左向右进行,而重载是函数,先运行右边!