欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用C++的const引用的需要额外注意的两点

程序员文章站 2024-01-02 14:39:04
...

写在前面:
根据《C++ primer 5 th》的引用章节的讲述,除了下面即将要介绍引用的两个例子外,其他所有的有引用的类型都要与之绑定的对象的类型严格匹配


例外情况一:初始化常量引用时允许任意表达式(非常量的对象、字面值、甚至是一个一般表达式)作为初始值

int i=42;
const int &it1=i;		//正确:允许const int&绑定到一个普通int对象
const int &it2=42;		//正确:允许const int&绑定到字面值
const int &it3=it1*2;	//正确:it1是一个常量引用
int &it4=it1*2;			//错误:it4一个普通的非常量引用

关于it4,编译器会报错:
使用C++的const引用的需要额外注意的两点


例外情况二:一个常量引用被绑定到另外一种类型上时,称为非法行为

double test = 3.14;
const int &it = test;
test = 4;
cout << it << endl;

注:
it并非绑定的是test的值3.14,而是绑定的是临时的int类型值3。由下面的调试窗口可知,it没有与test绑定,绑定的值是3,这种行为在c++中就是被称为非法行为。

调试窗口如下:
使用C++的const引用的需要额外注意的两点

上一篇:

下一篇: