std::istream &is=std::cin??

fasdfdsfdsf 2008-11-12 05:59:35
c++primer有个习题,:
逻辑上讲,我们可能希望将cin作为默认实参提供给接受一个istream&形参的构造函数。编写使用cin作为默认实参的构造函数声明。
Sales_itm(std::istream &is=std::cin){};
小弟不明白,是不是is采用复制构造函数利用cin定义赋值了。
还有就是流到底是什么,谁有cin或者fstream的源码给贴出来看一下

...全文
521 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2008-11-13
  • 打赏
  • 举报
回复
std::istream& is = std::cin;//没有调用构造函数或拷贝构造函数,因为is只是cin的引用,只是cin的别名
istream的源代码在一般编译器的安装包里都有
ForestDB 2008-11-13
  • 打赏
  • 举报
回复
最一般的引用赋初值(初始化)
jia_xiaoxin 2008-11-13
  • 打赏
  • 举报
回复
is不是采用复制构造函数利用cin定义赋值了。
而是在不传入参数的情况下,将is作为std::cin对象的引用。因为std::cin不是常量对象。
太乙 2008-11-12
  • 打赏
  • 举报
回复
up
太乙 2008-11-12
  • 打赏
  • 举报
回复
up
xxgamexx 2008-11-12
  • 打赏
  • 举报
回复
cin 就是istream对象,把对象传进去应该很普遍吧

这里的意思应该是如:

class A
{
};
voif fun( A &a)//你的 istream &is 和这样的类似
{
...
}

int main()
{
A cin;
fun(cin);
}


CodeNazior 2008-11-12
  • 打赏
  • 举报
回复
mark
0黄瓜0 2008-11-12
  • 打赏
  • 举报
回复
Sales_itm(std::istream &is=std::cin){};
小弟不明白,是不是is采用复制构造函数利用cin定义赋值了。
=============================================
is是std::cin的引用,在不传入其他参数时,使用is就是使用std::cin. 之所以不真接使用std::cin是为了灵活性。也就是这个函数中用到的东西可以从键盘输入,如果传入文件流对象,则是文件输入。
once_and_again 2008-11-12
  • 打赏
  • 举报
回复
exceptional c++
more exceptional c++

具体哪本书不记得,
但是 其中一本讲的非常详细了.......

65,211

社区成员

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

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