new操作符:
释放数组加中括号:delete[ ] arr
引用的基本使用
作用:给变量起别名
语法:数据类型 &别名 = 原名
注意事项:
引用必须要初始化;引用在初始化后,不可以改变
输出a,b,c的值为20
引用做函数参数
总结:通过引用参数产生的效果和同按地址传递是一样的,引用的语法更简单清楚。
引用做函数的返回值
注意:不要返回局部变量引用
用法:函数调用作为左值
引用的本质
本质:引用的本质在c++内部实现是一个指针变量
常量引用
使用场景:用来修饰形参,防止误操作
在函数形参列表中,可以用const修饰形参,防止形参改变实参。
函数默认参数
语法:返回值类型 函数名 (参数=默认值){ }
注意点:
1.如果某个位置已经有了默认参数,那么从这个位置开始,从左到右都必须有默认值
2.如果函数声明有默认参数,函数实现不能有默认参数
声明和实现只能有一个有默认参数
函数占位参数
语法:返回值类型 函数名(数据类型){ }
占位参数还可以有默认参数
函数重载
作用:函数名可以相同,提高复用性·
函数重载满足条件:
同一个作用域
函数名称相同
函数参数类型不同,或者个数不同,或者顺序不同
注意:函数返回值不可以为函数重载的条件
函数重载注意事项
引用作为重载条件
函数重载碰到默认参数
类和对象
C++面向对象的三大特性:封装、继承、多态
封装
封装意义一:
在设计类的时候。属性和行为在一起,表现事物
语法:class 类名{ 访问权限;属性 /行为 };
访问权限有三种:
1.public 公共权限 类内可以访问 类外可以访问
2.protected 保护权限 类内可以访问 类外不可以访问
3.private 私有权限 类内可以访问 类外不可以访问
struct和class的区别
struct的默认权限是公共 public
class的默认权限是私有 private
成员属性设置为私有
对象的初始化和清理
析构函数的分类和调用
构造函数调用规则
深拷贝与浅拷贝
总结:如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题。
初始化列表