【C++】const 常引用的用法

用法: const int & a;

定义了一个整型常引用变量a。

特点:

1、不能够通过常引用变量来修改其值,如:

const int & a = 10;

a = 12;//编译报错!

2、可以通过非常引用变量给常引用变量赋值,反之则不行。

const int & a = 10;
int & b = 20;
a = b;//通过
b = a;//编译报错

可以通过强制类型转换来达到常引用赋值给非常引用,如下:

const int & a = 10;
int & b = 20;
b = (int &)a;//通过
时间: 2024-09-29 19:43:52

【C++】const 常引用的用法的相关文章

const 常引用

常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的. 这篇主要说常引用.常引用是指所引用的对象不能被更新. 在实际应用中,常引用往往用来作为函数的形参,这样的参数称为常参数.在C++语言面向对象的程序设计中,引用的使用还是比较多的,其中使用 const 修饰的常引用使用的更多.使用常参数表明该函数不会更新某个参数所指向或所引用的对象,这样,在参数传递过程中就不需要执行复制构造函数,这将会改善程序的运行效率. 示例: 1 #include <iostream.h

C++ Primer 学习笔记_19_类与数据抽象(5)_初始化列表(const和引用成员)、拷贝构造函数

C++ Primer 学习笔记_19_类与数据抽象(5)_初始化列表(const和引用成员).拷贝构造函数  从概念上将,可以认为构造函数分为两个阶段执行: 1)初始化阶段: 2)普通的计算阶段.计算阶段由构造函数函数体中的所有语句组成. 一.构造函数初始化列表 推荐在构造函数初始化列表中进行初始化 1.对象成员及其初始化 <span style="font-size:14px;">#include <iostream> using namespace std;

C++对象的常引用

1直接传递对象名 用对象名传递函数参数时候,在函数调用时将建立一个新的对象,他是形参对象的拷贝 例如: #include<iostream> using namespace std; class Time { public: Time(int,int,int); void Print(); void reset(Time &t); private: int year; int month; int day; }; Time::Time(int y,int m,int d) { year

对const的引用(常量引用)

引用的类型必须与其所引用对象的类型一致.但是,对const的引用是第一种例外情况. 对const的引用,常简称为"常量引用". 常量引用的初始值可以是任意表达式,只要该表达式的结果能转换成引用的类型即可. 但是,对于字面值,一般表达式以及与常量引用类型不一致的对象作为常量引用的初始值,常量引用实际绑定到了临时变量上.测试代码如下: 1 #include <iostream> 2 3 int main() 4 { 5 int i = 42; 6 int &r1 = i

const常量引用的使用方法

C++编程语言中,对于常量的引用是一个非常重要的应用技巧.在这篇文章中,我们将会为大家详细介绍一下有关C++常量引用的相关应用方法,相信大家可以从中学到很多知识. C++单例模式基础内容详解 C++创建Web服务相关方法剖析 C++构造函数如何进行初始化 C++标识符命名规则相关应用技巧分享 C++函数模板基本概念讲述 如果是对一个常量进行引用,则编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作.对C++常量引用可以用其它任何引用来初始化:但不能改

c++中临时变量不能作为非const的引用参数

试看下面的代码: #include <iostream> using namespace std; void f(int &a) { cout << "f(" << a  << ") is being called" << endl; } void g(const int &a) { cout << "g(" << a << "

C++笔记(2):const限定符的用法

1.定义和初始化 a).const限定符的作用是把一个对象转换成一个常量,const的使用在一定程度上可以提高程序的安全性和可靠性. const int bufSize = 512; int const bufSize = 512; 以上两种定义完全是等价的,都使得bufSize成为一个值为512的常量,但它仍是一个左值,只是不能修改而已. 需要注意的是,由于常量在定义后就不能被修改,所以定义时必须初始化. b).使用其他已有值的变量也可初始化const变量. int cnt = 0; cons

临时变量作为非const的引用进行参数传递引发的编译错误

1.错误原因即解决办法 Linux环境运行,使用g++编译,观察如下代码,会出现: invalid initialization of non-const reference of type 'std::string&' from a temporary of type 'std::string'的错误. 其中文意思为临时变量无法为非const的引用初始化.也就是在参数传递的过程中,出现错误.出错的代码如下: void print(string& str) { cout<<st

认识左值与常引用

代码编译运行环境:VS2012+Win32+Debug 1.左值的定义 左值是(lvalue)是C++中的一个基本概念.凡是可以出现在赋值运算符左边的表达式都是左值.与左值相对的就是右值(rvalue),凡是可以出现在赋值运算右边的表达式都是右值.左值一定可以作为右值,但反过来不一定成立. 可以给左值下一个定义:值为可寻址的非只读单元的表达式称为左值. 因此,理解左值的概念,需要注意一下几点: (1)左值一定是可以寻址的表达式,不能寻址的表达式不能作为左值.例如,表达式3+5是一个符号常量表达式