在看C++的时候,看到关于const引用及其非const引用的区别的,一看就懂,但老是过后就忘了,总是要翻回去看
但作者写得零零散散的,看得我迷迷糊糊的。
现在我将我理解到的区别写下来。
const引用是指指向const对象的引用,但并不是说它只能用const对象初始化,它可以绑定到 不同但相关类型的对象或绑定到右值,包括const对象与非const对象,
但都不能通过引用对其绑定的对象进行赋值,这句话的意思是对象本身可能可以被赋值,只是不能通过它的别名——引用对其赋值
而非const引用只能与完全同类型的非const对象绑定,能通过引用对其赋值。
因此,在定义引用时,若不需要对其绑定的对象进行赋值,而是进行其他的操作,如比较,输出,则最好将其定义为const引用,不然可能会改变对象的值而与自己原期望相违背,
但作者写得零零散散的,看得我迷迷糊糊的。
现在我将我理解到的区别写下来。
const引用是指指向const对象的引用,但并不是说它只能用const对象初始化,它可以绑定到 不同但相关类型的对象或绑定到右值,包括const对象与非const对象,
但都不能通过引用对其绑定的对象进行赋值,这句话的意思是对象本身可能可以被赋值,只是不能通过它的别名——引用对其赋值
而非const引用只能与完全同类型的非const对象绑定,能通过引用对其赋值。
因此,在定义引用时,若不需要对其绑定的对象进行赋值,而是进行其他的操作,如比较,输出,则最好将其定义为const引用,不然可能会改变对象的值而与自己原期望相违背,
并且也会限制了引用的使用,因为非const引用不能用const对象初始化,也不能用字面值初始化
这是我的理解,可以帮助理解,但可能没有书上写的那么严谨。