c++把ostream引用放在函数参数中有什么用

问题描述

c++把ostream引用放在函数参数中有什么用
以下代码:
void print(ostream& out) const {

out << name << salary << endl;

}
为什么不直接cout呢,而要传一个ostream引用进来?

解决方案

cout是标准输出iostream的一个对象,用ostream这样不仅仅可以标准输出iostream对象,也可以是文件输出类ofstream 或者ostringstream的一个对象!

解决方案二:
cout是标准输出iostream的一个对象,用ostream这样不仅仅可以标准输出iostream对象,也可以是文件输出类ofstream 或者ostringstream的一个对象!

解决方案三:
可以使用不同的对象,比如输出到日志等。

解决方案四:

cout是标准输出iostream的一个对象,用ostream这样不仅仅可以标准输出iostream对象,也可以是文件输出类ofstream 或者ostringstream的一个对象!
正解!

时间: 2024-11-10 00:15:58

c++把ostream引用放在函数参数中有什么用的相关文章

举例剖析C++中引用的本质及引用作函数参数的使用_C 语言

引用的意义与本质1)引用作为其它变量的别名而存在,因此在一些场合可以代替指针 2)引用相对于指针来说具有更好的可读性和实用性 引用本质思考: 思考.C++编译器背后做了什么工作? #include <iostream> using namespace std; int main() { int a = 10; // 单独定义的引用时,必须初始化:说明很像一个常量 int &b = a; // b是a的别名 b = 11; cout << "b--->&quo

声明转化为引用-C++函数参数参数初始化

问题描述 C++函数参数参数初始化 参数的初始化:已知函数void foo( X x0); 下面这样调用函数 X xx; foo(xx); 则其中一种实现策略是导入临时性object,并调用copy constructor将它初始化,然后将此临时性object交给函数,如下: X _temp0; _temp0.X::X( xx ); foo( _temp0 ); 但这样的转换还不到位,foo()的声明也需要被转化,形式参数必须从原先的一个class X object改变为class X 引用.如

C++动态分配和撤销内存以及结构体类型作为函数参数_C 语言

C++动态分配内存(new)和撤销内存(delete) 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除.在C语言中是利用库函数malloc和free来分配和撤销内存空间的.C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数. 注意: new和delete是运算符,不是函数,因此执行效率高. 虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算

C++函数参数中引用和指针有什么区别?

问题描述 C++函数参数中引用和指针有什么区别? C++函数参数中引用和指针有什么区别? 解决方案 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址: 引用是某块内存的别名. ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指针需要解引用: 3. 引用只能在定义时被初始化一次,之后不可变:指针可变: 引用"从一而终" ^_^ 4. 引用没有 const,指针有 const,const 的指针不可变: 5. 引用不能

c语言 二叉树-CreateBiTree函数参数为什么把引用符号去掉 就不能运行啊?*&amp;amp;amp;是怎么用的说?

问题描述 CreateBiTree函数参数为什么把引用符号去掉 就不能运行啊?*&是怎么用的说? #include #include typedef struct Node //二叉树结构定义 { char data; struct Node *lchild; struct Node *rchild; }Bitree; void CreateBiTree(Bitree *&t) //先序遍历创建二叉树 { char s; scanf("%c",&s); if(s

c++函数参数类型-引用、指针、值

在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数.这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身. 例如: [cpp] view plaincopyprint? void changeVar(int myVar,int newValue)      {        myVar=newValue;      }      int main(){      int myNum=20;      changeVar(my

c++将引用或者是指针作为函数参数实现实参的运算_C 语言

C++增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能,较指针参数来得更加安全直观.将引用作为参数传递的时候,实参初始化形参的时候不分配内存空间,也不调用拷贝构造函数,因此更加能够提高运算的性能.所以我们应该尽可能地使用引用,而非指针,但是应该要注意,因为局部变量具有自己短暂的生命周期,因此不能够返回对一个局部变量的引用. 引用通常是在被定义的时候被初始化,但是当它作为参数的时候,则是在被调用的时候被初始化.这时候对引用所做的改变就是对被引用的变量所做的改变. 引用对变量的访问是

关于C++引用做为函数参数和指针作为函数参数

关于C++引用做为函数参数和指针作为函数参数 个人感觉引用和指针有着很多相识的地方 参考http://blog.itpub.net/7728585/viewspace-2113049/ 我们这里编写两段函数如下: 1.   AT_NAME & at_r (AT_NAME & cp,const AT_NAME & in_s)   {       cp = in_s;       return cp;   } 2.    AT_NAME* at_p (AT_NAME *cp , con

王亟亟的Python学习之路(五)-dictionary,set,函数,函数参数

转载请注明出处王亟亟的大牛之路 上一篇说的是循环,条件,Range,list和tuple,今天将从函数(方法)开始进一步的学习 -dictionary -set -函数 -函数参数 dictionary 键-值(key-value)存储,具有极快的查找速度.为什么反复提起查询速度,因为如果你一个用list只是为了获取里面X元素内容的话性能是相对比较查的,极力推荐"字典",字典也在第三片文章中有列出,但是这里还是再丰富下他的一些常用方法. 如何获检索dic内的值 dic={'wjj':1