C++中引用的基本用法

马谦马谦马谦 C/C++评论180字数 613阅读2分2秒阅读模式

一、基本用法

创建一个对象的引用只需把声明符写成&val的形式即可:

创建引用时,编译器并不是把拷贝一个值赋给引用,而是把引用和初始的对象绑定在一起,相当于只是给对象起了一个别名。可以通过引用来操作初始化对象,并且通过引用来操作对象时,相当于直接对对象进行了操作。

以引用作为函数的形参时,在函数内部改变形参的值,函数外部变量的值也会改变:

可以用引用给引用赋值,实际上就是把引用绑定的对象作为初始值:

二、注意事项

1 引用必须初始化

因为引用只是和对象绑定在一起了,而不是拷贝值,一旦初始化完成,引用将永远和初始对象绑定在一起。所以引用在使用时必须初始化,并且引用不能重新赋值。

2 不能使用引用的引用

引用本身不是一个对象,所以不能定义引用的引用

3 引用对象的类型必须匹配

引用对象的数据类型必须和初始化对象严格匹配。

4 不能使用字面量初始化引用类型

引用类型的初始值必须是一个对象,不能为一个字面量。

 
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017年12月4日22:46:29
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/c-cpp/cpp-reference-1.html
  • 引用
C++文件输入输出流fstream的基本用法 C/C++

C++文件输入输出流fstream的基本用法

一、文件流 C++的IO类中定义了三个文件读写流fstream、ifstream以及ofstream,它们都继承于相同的父类istream,通过不同的实现以实现不同的文件流操作。 三者的区别为: if...
C++11中const_cast的真实使用场景 C/C++

C++11中const_cast的真实使用场景

一、const和成员函数的故事 const的用途有以下几种: 修饰全局、局部、成员变量 修饰成员函数 修饰变量的时候const限制了变量在整个程序运行期间都是不能修改的,而修饰成员函数的时候限制函数内...
C++11中的override和final关键字 C/C++

C++11中的override和final关键字

一、前言 昨天在公司做代码扫描,发现很多类似以下的代码都产生了告警,导致扫描不通过: virtual int func() override {} 不通过的原因是:同时使用virtual和overri...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证