进来看看吧
程序1:
#include<iostream.h>
class test
{
public:
int a;
};
test fun(test);
void main()
{
test a;
test &y=fun(a); //不用加const修饰
}
test fun(test x)
{
x.a=100;
return x;
}
程序二:
#include<iostream.h>
int test();
main()
{
const int &a=test(); //必须要const修饰
}
int test()
{
return 100;
}
我得理解是程序一返回的test类型对象x,实质上是把y类的数据成员a的属性100
赋给y的成员a, y虽然被声明为返回值X的引用,但是y类中的a并不是引用类型,
所以无须const修饰。
程序二是直接讲常量100返回,即a是常量100的引用,所以必须加const修饰。
小弟刚学不久,可能理解不对,大家以为如何??