C++中COUT是不是不能按值传递?

最近学习C++,现在到运算符重载这一块,书上有这么一个代码
friend std::ostream & operator<<(std::ostream & os, const Time & t)
这是个<<的友元函数,想直接COUT<<一个TIME类,为什么我把os前面的引用符号删除就不行了呢?是不是cout他不能按值传递啊?求解

c++中std::ostream这个类只能有一个实例,就是cout,如果你按值传递的话就相当于在这个重载函数里面又多定义了一个ostream类,是不被允许的,你如果是引用传递的话就还是原来那个cout,不会有两个ostream类实例,因此只能用引用传递
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-23
要改写流中的数据,肯定要传引用参数。
相似回答
大家正在搜