reference初始化
来源:互联网 发布:美工工作室 编辑:程序博客网 时间:2024/06/05 00:35
引用变量和const变量一样,在声明是要初始化,即要定义,不能仅声明。不管是全局还是局部变量都要初始化。不同于const变量,即使是具有默认构造函数的类的引用变量也需要初始化。
const引用可以指向非const变量,const变量,或者右值(常量表达式)。例如:
#include <iostream>
using namespace std;
int main(void)
{
int a=10;
const int b=20;
const int &ref1=a;
const int &ref2=b;
const int &ref3=30;
cout<<ref1<<" "<<ref2<<" "<<ref3<<endl;
return 0;
}
结果:10 20 30
但是反过来非const引用不可以指向const变量,也不能指向右值。例如:
#include <iostream>
using namespace std;
int main(void)
{
int a=10;
const int b=20;
int &ref1=a;
int &ref2=b;
int &ref3=30;
cout<<ref1<<" "<<ref2<<" "<<ref3<<endl;
return 0;
}
上例中出现编译错误,对ref2和ref3的初始化都是非法的。
const引用还可以绑定不同类型的对象,可以隐式转换的对象。
#include <iostream>
using namespace std;
int main(void)
{
double a=1.23;
const int &refa=a;
cout<<refa<<endl;
return 0;
}
对于上例程序编译器会转换为:
double a=1.23;
int temp=a;
const int &refa=temp;
但是非const引用会造成编译错误。
#include <iostream>
using namespace std;
int main(void)
{
double a=1.23;
int &refa=a; //编译错误
cout<<refa<<endl;
return 0;
}
- reference初始化
- reference和const reference的初始化
- 类中 const,static,reference成员的初始化
- 类中const, static, reference成员的初始化
- 类中const, static, reference成员的初始化
- Reference
- reference
- Reference
- Reference
- reference
- reference
- Reference
- Reference
- Reference
- reference
- C++类中const, static, reference等类型成员的初始化
- C++类中const, static, reference等类型成员的初始化
- Tomcat Jdbc数据源初始化过程以及错误Cannot resolve reference to bean 'dataSource' while setting bean property 'da
- Windows API 函数大全
- 使用<fstream>库
- <WP7>(一)手把手教你写天气预报程序:序言
- Linux驱动的开发与移值——分析Tiny210的声卡驱动模块
- SQL Server如何保证可空字段中非空值唯一
- reference初始化
- Java IO操作上 File 字节流字符类
- 从10亿个浮点数当中,选出其中最大的10000个
- Android 1.5 自带的图标一览表
- 简单工厂模式(Simple Factory)
- HttpContext是干什么的; asp.net 获取网站路径;DataSet读取xml文件;updatepanel 控件的局部刷新 always和condition
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- win2008标准版下安装U870sp1+2的方法
- 虚函数深层分析