1.引用数据类型
C++提供了一种与指针密切相关的数据类型-------引用。引用是一个变量的别名,其本质就是计算机不会为一个引用类型变量分配内存空间,而只是使引用类型的变量与与之关联的变量指向同一内存空间,也鉴于此引用在定义的时候必须初始化。也可以理解为引用就是一个指向该变量的指针,与一般指针不同的是引用一旦初始化其指向的地址就不会再变了;
看一下程序:
#include <iostream.h>
void main(void)...{
int a=5;
int &ra=a;
cout<<"a="<<a<<endl;
cout<<"ra="<<ra<<" ";
cout<<"a的地址是"<<&a<<endl;
cout<<"ra的地址是"<<&ra<<endl;
int b=8;
ra=b;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"ra="<<ra<<" ";
cout<<"a的地址是"<<&a<<endl;
cout<<"b的地址是"<<&b<<endl;
cout<<"ra的地址是"<<&ra<<endl;
}程序输出结果
a=5
ra=5
a的地址是0x0012FF7C
ra的地址是0x0012FF7C
a=8
b=8
ra=8
a的地址是0x0012FF7C
b的地址是0x0012FF74
ra的地址是0x0012FF7C
由此看出对引用的改变也直接影响的变量的改变,而引用的地址始终是不变的,总是与之关联的变量的地址。
2.拷贝构造函数
拷贝构造函数是一种特殊的构造函数,它的功能是用已有的类对象来初始化一个同类的对象,其形式如下:
<类名>::<拷贝构造函数名>(const <类名>&<引用名>)
看一下程序
#include <iostream.h>
class CDate...{
public:
CDate(int year=2007,int month=6,int day=21)...{
cout<<"调用构造函数"<<endl;
nYear=year;nMonth=month;nDay=day;
cout<<nYear<<"-"<<nMonth<<"-"<<nDay<<endl;
}
CDate(const CDate &ymd)...{
cout<<"调用拷贝构造函数"<<endl;
cout<<ymd.nYear<<"-"<<ymd.nMonth<<"-"<<ymd.nDay<<endl;
}
private:
int nYear,nMonth,nDay;
};
void main()...{
CDate day1;
CDate day2(day1);
}程序输出结果:
调用构造函数
2007-6-21
调用拷贝构造函数
2007-6-21
本文详细介绍了C++中的引用数据类型及其特点,通过实例展示了引用如何与原始变量共享内存空间,并解释了引用在初始化后指向不可更改的特性。此外,还探讨了拷贝构造函数的作用和使用场景,提供了具体的代码示例。
2255

被折叠的 条评论
为什么被折叠?



