找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1148|回复: 8

引用返回值的问题

[复制链接]
发表于 2009-11-3 23:39:14 | 显示全部楼层 |阅读模式 IP:江苏扬州
# include <iostream.h>
float temp;
float fn1(float r)
{
temp=(float)(r*r*3.14);
return temp;
}
float &fn2(float r)
{
temp=(float)(r*r*3.14);
return temp;
}
void main()
{
float a=fn1(10.0);
//float & b=fn1(10.0);
float c=fn2(10.0);
float &d=fn2(10.0);
cout<<"a="<<" "<<a<<endl;
//cout<<"b="<<" "<<b<<endl;
cout<<"c="<<" "<<c<<endl;
cout<<"d="<<" "<<d<<endl;
}
我不明白这里a,b,c,d如何操作,或被操作的?望大家给点点!
发表于 2009-11-3 23:39:16 | 显示全部楼层 IP:江苏扬州
紅色的是 引用了一個常數值
可以這樣:
const float &b = fn1(10.0);
b 是引用了一個 fnl 的返回值的常數
回复

使用道具 举报

发表于 2009-11-3 23:39:17 | 显示全部楼层 IP:江苏扬州
应该这样说
b是一个引用,它引用了一个浮点型的常量,该常量是fn1的返回值
回复

使用道具 举报

发表于 2009-11-3 23:39:19 | 显示全部楼层 IP:江苏扬州
但是//float & b=fn1(10.0);不能通过VC++编译器!那么是为什么?
是不是函数的返回值不能被引用?
回复

使用道具 举报

发表于 2009-11-3 23:39:21 | 显示全部楼层 IP:江苏扬州
函式是返回了一個常數值啊
你這樣寫就相當於 float & b = 10.0f;
這樣不可以的
回复

使用道具 举报

发表于 2009-11-3 23:39:22 | 显示全部楼层 IP:江苏扬州
把b定义为const引用就ok了
回复

使用道具 举报

发表于 2009-11-3 23:39:25 | 显示全部楼层 IP:江苏扬州
yeshirow 女人编程也疯狂啊
回复

使用道具 举报

发表于 2009-11-3 23:39:27 | 显示全部楼层 IP:江苏扬州
为什么 const就可以了
回复

使用道具 举报

发表于 2009-11-3 23:39:29 | 显示全部楼层 IP:江苏扬州
因为临时变量是常量,如果定义的引用是non const的,那么引用const变量是非法操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 19:42 , Processed in 0.104993 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表