进来看看吧

qazxsw1982103 2004-03-08 11:06:00
程序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修饰。

小弟刚学不久,可能理解不对,大家以为如何??
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧