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

请各位大侠帮忙看看这个问题

[复制链接]
发表于 2009-11-4 01:31:05 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include <iostream>
class ilist {
public:
void display( ostream &os = cout );
// ...
};
void
ilist::
display( ostream &os )
{
os << "\n( " << _size << " )( ";
ilist_item *ptr = _at_front;
while ( ptr ) {
os << ptr->value() << " ";
ptr = ptr->next();
}
os << ")\n";
}

我的问题是display函数为什么非要带&os这个参数呢
写成下面这样不是很简洁  不知道加这个参数是不是有什么好处请高手指点!
#include <iostream>
class ilist {
public:
void display( );
// ...
};
void
ilist::
display( )
{
cout << "\n( " << _size << " )( ";
ilist_item *ptr = _at_front;
while ( ptr ) {
cout<< ptr->value() << " ";
ptr = ptr->next();
}
cout << ")\n";
}
谢谢各位大侠了 这是c++primary上的一个例子
发表于 2009-11-4 01:31:06 | 显示全部楼层 IP:江苏扬州
首先函数,没有谁一定要你带什么参数!
要看程序自己的设计水平...很明显有ostream &os 作参数,对于多种输出流都是通用的,程序的扩展性显然比直接用cout要好的多
回复

使用道具 举报

发表于 2009-11-4 01:31:07 | 显示全部楼层 IP:江苏扬州
如果输入参数以值传递的方式传递对象,则宜改用“const &”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率

这就是 值传递和引用传递的区别.如果都是一般的内型如 int char
这样的话两种传递差别不大.

按引用传递只是传递了一个对象的地址而已.值传递传一个副本.如果这个副本
很大的话.那么效率肯定就低了
回复

使用道具 举报

发表于 2009-11-4 01:31:08 | 显示全部楼层 IP:江苏扬州
谢谢ls两位兄弟....
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 03:23 , Processed in 0.205674 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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