社区
C++ 语言
帖子详情
大家帮忙看一段代码
syd_programming
2005-05-16 12:23:25
代码段1:
void swap( int &, int & );
int manip( int i1, int i2 ) {
// ...
swap( i1, i2 );
// ...
return 0;
代码段2:
class B;
void takeB( B& );
B giveB();
int main() {
takeB( give() );
return 0;
}
段1是正确的,段2却是错误的,为什么?
...全文
109
7
打赏
收藏
大家帮忙看一段代码
代码段1: void swap( int &, int & ); int manip( int i1, int i2 ) { // ... swap( i1, i2 ); // ... return 0; 代码段2: class B; void takeB( B& ); B giveB(); int main() { takeB( give() ); return 0; } 段1是正确的,段2却是错误的,为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
angelanpan
2005-05-16
打赏
举报
回复
void takeB( B& );
改为
void takeB( const B& );就可以了
因为giveB()产生的是临时变量,是常量,不能变成非常量引用
gameslq
2005-05-16
打赏
举报
回复
up
lw1a2
2005-05-16
打赏
举报
回复
以下才是等同与段1的
class B
{
}
;
void takeB( B& )
{
}
void giveB(B& b)
{
takeB(b);
}
int main()
{
B b;
giveB(b);
return 0;
}
lw1a2
2005-05-16
打赏
举报
回复
class B;
void takeB( B& );
B& giveB();//这个函数很奇怪,既不是成员函数,又没提供参数,你想让他返回什么?
int main() {
takeB( giveB() ); //这里打错了
return 0;
}
Roaming_Sheep
2005-05-16
打赏
举报
回复
takeB( give() );
这里 give()返回的B对象是临时对象吧?跟这个有关?
jpq1982
2005-05-16
打赏
举报
回复
第一段的i1,i2在manip中是实际存在的变量, 只不过是局部于涵数的.
第二段真的是临时的(名字都没有:))
yesiloveyou
2005-05-16
打赏
举报
回复
学习...
switch多个case执行
一段
代码
博客介绍了在switch语句中,多case对应
一段
代码
的写法,即直接将多个case连着写,如case1:case2:
代码
; break; 。
我写了
一段
代码
博主称自己写了
一段
代码
,没写过
代码
的人可能看不出其中奥妙,
代码
专业的人或许也不在意。博主本想洋洋洒洒写五百万字介绍
代码
,但因知识、资源、能力等多方面有限,成果较少。
java 如何去看懂
一段
代码
?
本文介绍了一种适合初学者的
代码
阅读方法,分为理解流程、掌握语句功能和实践试数三个步骤,通过实例解析了如何运用此方法读懂
一段
代码
的具体功能。
一段
练习的
代码
本文探讨了在Scala中如何从数组中移除特定条件下的负数元素,通过
一段
复杂的
代码
示例,展示了如何保留首个负数并移除其后的所有负数,同时保持数组的连续性。
一段
神奇的
代码
本文展示了
一段
独特的
代码
,作者旨在展现编程的美学而非遵循传统编码规范。
代码
经过精心设计,虽有编译警告,但成功运行并输出了艺术图案,体现了编程艺术的一面。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章