/*
*程序名称:CppConstRefernce
*程序描述:C++const对象和 引用
*编写时间:2012125
*/
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
/**************************************************************************************
*const:将变量定义为常量
* 1.const定义的变量默认为文件的局部变量,可以使用extern指定一个const变量为全局变量
* 2.非const这是默认为extern。
*引用:reference是对象的另一个名字,主要用作函数的形式参数
* 1.引用是一种复合类型,通过在变量名前添加&符号来定义,复合类型是其它类型定义的类型。
* 2.引用必需与该引用同类型的对象初始化,不用字面量。
* 3.引用是别名,作用在该引用上的所有操作事实上都是作用在该引用绑定的对象上。
* 4.在一个类型行中定义多个引用时必需在每个引用标识符前添加&符号
*
**************************************************************************************/
string str = "abc"; //全局变量
//常量不可以更改
const string str1 = "abc"; //局部常量,其它文件不可以使用
extern string str2 = "abc"; //全局常量
int main()
{
//以下给str1赋值操作编译会报错,const类型的变量不可以改变
//str1 = "dbc";
//引用的使用
int i = 5;
int &refi = i;
//int &refi1 = 7; //引用类型的这是必需用同引用的类型的对象初始化,不用字面量
//int &refi2; //引用类型必需初始化
//定义多个引用,每个引用标识符前都要添加&符号
string s = "a", &s1 = s,&s2 = s;
refi = 10; //改变引用的值事实上是改变引用绑定的变量的值
cout << i << endl; //输出10
}