C++的常引用

Reference to const

We can bind a reference to const to a nonconst object, a literal, or a more general expression:

    int i = 42;
	const int &r1 = i;		//bind a const int& to a plain int object
	const int &r2 = 42;		//ok.r1 is a reference to const
	const int &r3 = r1 * 2;         //ok.r3 is a reference to const
	int &r4 = i * 1;		//error.r4 is a plain,nonconst reference
    double dval= 30;
	const int &rDval = dval; 
	dval = 42;
	cout << rDval << endl; // print 30

The compiler transforms this code into something like:

    const int temp = dval;
	const int &rDval = temp;

In this case, rDval is bound to a temportary object.

时间: 2024-10-13 10:08:21

C++的常引用的相关文章

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

认识左值与常引用

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

常引用

常引用:让变量引用只读属性: 分为两种:用变量初始化的常量引用,和  ,用常量初始化的常量引用 //常量引用初始化 分为两种 //1 用变量 初始化 常量引用 { int x = 20; const int& y = x; printf("y:%d \n", y); } //2 用常量 初始化 常量引用 { //int &m = 10; //引用是内存空间的别名 字面量10没有内存空间 没有方法做引用 const int &m = 10; //c++编译器会偷偷

【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 &am

对象的常指针与对象的常引用

如下所示: 定义一个类 1 class Coordinate { // 坐标类 2 public: 3 Coordinate(int x, int y); 4 ~Coordinate(void); 5 6 void SetX(int x); 7 void SetY(int y); 8 void PrintInfo(void) const; // 常成员函数 9 int GetX(void); 10 int GetY(void); 11 private: 12 int m_iX; 13 int m

C#Winform常引用的库

1.DevExpress:引用其下的不同DLL,可操作使用不同的控件 2.IrisSkin2:引用对应的DLL后,代码如下 private Sunisoft.IrisSkin.SkinEngine skinEngine1; this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this))); this.skinEngine1.SerialNumber = ""; t

C++中的引用

引用就是某个目标变量的别名,对引用的操作与对变量的直接操作效果完全相同. 引用的声明方法:类型标识符 &引用名=目标变量名: 如下:定义引用ra,它是变量a的引用,即别名. int a; int &ra=a; 1)  声明一个引用,必须进行初始化. 2)引用声明完毕后,相当于目标变量有两个名称即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名. 3)引用本身不是一种数据类型,因此引用本身不占存储单元,系统也不会给引用分配存储单元. 4)不能建立数组的引用.因为数组是一个由若干个

引用专题(续)=》 常量引用

常引用分两点: 1 使用变量初始化const引用 const int &a = b 2 使用字面量常量初始化const引用  const int &m = 10: #include <iostream> using namespace std; void main() {     //普通引用     int a = 10;     int &b = a;     printf("b"%d\n",b);               //常引