类中的&(c++)

来源:百度知道 编辑:UC知道 时间:2024/06/03 13:15:21
有的类里面有这个
数据类型 &函数名(数据类型);
这种结构有什么用,是什么意思?

int &hourref=t.badhour(xx)
这样的是有什么用

解释的似乎不清楚……
哪位大牛举个详例让我膜拜一下吧。

#include<iostream.h>

class CData
{
public:
CData(int=0);
int & add(int );
void output();
private:
int n;
};

CData::CData(int a)
{
n = a;
}
int & CData::add(int a)
{
return n = n + a;
}
void CData::output()
{
cout<<"n="<<n<<endl;
}

int sub(int &n, const int a)
{
return n = n - a;
}
main()
{
CData c(0);
cout<<"构造函数执行后,私有数据n的值为:"<<endl;
c.output();
cout<<"调用类中成员函数“加函数”之后,n的值为:"<<endl;
c.add(1);
c.output();

cout<<"调用sub函数后,n的值为:"<<sub(c.add(2),1)<<endl;

return 0;
}

先看看这个例子吧,其实不建议你写类似的代码,因为破坏了类的封装性,但为让你领悟成员函数返回“引用”类型的作用之一,就先这么写吧。

成员函数add()原型为:
int & add(int );
我用它返回对私有数据n的引用。

一个函数sub(),
int sub(int &n, const