用引用传递值,为什么会改变变量的值?

来源:百度知道 编辑:UC知道 时间:2024/05/24 11:11:01
我写了以下程序用来计算两个时间的差:
class CTime
{
private:
int year,month,day,hour,minutes;
public:
CTime(int year=2008,int month=8,int day=8,int hour=8,int minutes=8);
bool CTime::IsLeapYear(int n);
int CTime::CompareCTime(CTime &a,CTime &b);
int CTime::PrintTime(int n);
};
CTime::CTime(int year,int month,int day,int hour,int minutes)
{
printf("请输入想比较的数值!\n");
scanf("%d %d %d %d %d",&year,&month,&day,&hour,&minutes);
}

bool CTime::IsLeapYear(int n)
{
if(n%4)
{
if(n%100)
{
if(n%400)
return 1;
}
else
return 0;
}
else
return 1;
}
int CTime::CompareCTime(CTime &a,CTime &b)
{
int DateA[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int DateB[12]={31,29,31,30,31,30,31,31,30,31,30,31};
if(!IsLeapYear(a.year))DateA[1]=28;
if(!IsLeapYear(b.year))DateB[1]=28;

引用名相当于被引用对象的别名,通俗话讲就相当于人有书面名和乳名,但是都是指同一个人,无论是哪个名字的人去做什么事情,最终都是这个人做的。

引用也就是别名,换一个称乎而已,所指的还是同一内存,值也是一样的.对引用的操作也就是对原来数的操作,并不是赋值.