在什么时候需要用到常引用const---情景
目录
1.避免拷贝大对象
2.保持对象的不可变性
3.避免对象的切片问题
4.传递类对象给函数
5.提高函数的泛用性
在C++里面,使用常引用主要就是为了提高我们的程序的效率和安全性;
场景分析:
1.避免拷贝大对象
大对象就是内容量大,占用的内存多,使用普通的引用就会降低我们的程序开发的效率,因为要进行拷贝操作,我们使用const&常引用可以避免这个拷贝的操作,提高我们的程序性能;
2.保持对象的不可变性
就是使用我们的const常引用可以让我们的这个定义的对象无法被其他的人进行修改,提高我们的代码的安全性;
3.避免对象的切片问题
对象的切片指的就是我们的这个我们的派生类给这个基类的时候,我们的这个派生类的成员变量和函数会被丢失,这个就是在进行值传递的时候发生的;
我们使用常引用可以避免这个对象的切片问题,子类的这个函数和变量不会被丢失;
4.传递类对象给函数
这个是C++的精髓,对于默认的成员变量,我们进行默认拷贝构造的时候没有问题,但是当有指针的时候,因为会进行这个默认构造函数的调用,原来的对象和我们的新的拷贝对象公用相同空间,就会出现浅拷贝的问题,这个时候我们需要自己去实现这个拷贝构造函数的编写;
这个就是C++里面的浅拷贝和深拷贝的问题,我们需要自己实现深拷贝,避免这个内存空间的重复释放,这个就会有const&发挥作用;
5.提高函数的泛用性
这个泛用性就是可以支持我们的左值引用和右值引用,可以让我们的这个函数接受任意类型的参数,提高泛用性就是接受的参数类型比较多,提高我们的程序的参数普适性;