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

const 引用 和 非 const 引用

程序员文章站 2022-05-13 21:25:54
...

非const引用只能绑定到与该引用同类型的对象const引,用可以绑定到不同但相关的类型的对象或绑定到右值

关于const引用,测试用例

#include <iostream>
#include <string>
using namespace std;

int main() {
    double b = 2.14;
    const int  &a=b;//成立
    const int &a1=123;//成立
    cout<<a<<endl;//2
    
    b=3;
    cout<<a<<endl;//2
	
	a=3;//error a is const 
	return 0;
}

解释两点:

1.关于double b ,int和double存在隐式转换,算是相关的类型.而且,编译器会进行以下代码的转换

double b = 2.14;
const int &a = b;
会进行如下转换:
int temp = b
const int &a=temp;

所以,给b进行赋值,a可能会报错.


非常量引用:

必须类型一致且不能是右值.

相关标签: 引用