我的c++学习(7)引用和复制构造函数

一、引用

什么是引用? 引用又称别名(alias),是一种非常特殊的数据类型。它不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名,也就是

C++系统不为引用类型变量分配内存空间。引用主要用于函数之间的数据传递。

引用定义的格式为:     类型 &引用变量名=已定义过的变量名;

例如:     double number ;    

double &newnum=number ;

newnum是新定义的引用类型变量,它是变量number的别名,两个变量代表同一块内存。

【例】使用一个函数交换两个数据。

 

#include<iostream.h>
void swap(double & d1,double & d2) //d1和d2是引用型变量
{
       double temp ;
       temp=d1 ;
       d1=d2 ;
       d2=temp ;
}

void main(void)
{
       double x , y ;
       cout<<"请输入x和y的值"<<'\n';
       cin>>x>>y ;
       swap(x,y) ;
       cout<<"x="<<x<<'\t'<<"y="<<y<<'\n';
}

引用可以作为函数的返回值
一般函数返回值时,要生成一个临时变量作为返回值的拷贝,而用引用作为返回值时,不生成值的拷贝。
【例】采用不同返回方式的求正方形面积函数的比较。

#include<iostream>
using namespace std;
double temp;
double fsqr1(double a){
    temp=a*a ; return temp;
}
double & fsqr2(double a){
    temp=a*a ; return temp;
}
int main(){
    double x=fsqr1(5.5);//第一种情况
    double y=fsqr2(5.5);//第二种情况
    cout<<"x="<<x<<'\t'<<"y="<<y<<endl;
    return 0;
}

几点注意:
1.对数组只能引用数组元素,不能引用数组(数组名本身为地址)。
2.不能定义引用的引用(引用也是地址),所以当函数的参数为引用时,引用不能作实参。

 

二、复制构造函数

……

 

 

posted @ 2013-09-10 12:51  哪啊哪啊神去村  阅读(324)  评论(0编辑  收藏  举报