C++中关于流插入运算符和流提取运算符的问题

“<<”和“>>”运算符已经在iostream中被重载,能够用于ostream和istream类对象的标准类型数据的输入输出。但是ostream类和istream类不是i... “<<”和“>>”运算符已经在iostream中被重载,能够用于ostream和istream类对象的标准类型数据的输入输出。但是ostream类和istream类不是iostream的父类吗?为什么运算符在子类iostream中重载,但是父类的对象却可以直接用<<和>>呢?
请详细解答,谢谢
展开
 我来答
砍侃看
2016-06-07 · TA获得超过6153个赞
知道大有可为答主
回答量:6584
采纳率:69%
帮助的人:2096万
展开全部

看看iostream的源代码就知道了

/*
 * Copyright (c) 1998
 * Silicon Graphics Computer Systems, Inc.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Silicon Graphics makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 */ 

#ifndef __SGI_STL_IOSTREAM
#define __SGI_STL_IOSTREAM

#if defined(__sgi) && !defined(__GNUC__) && !defined(_STANDARD_C_PLUS_PLUS)
#error This header file requires the -LANG:std option
#endif

#include <iosfwd>
#include <istream>
#include <ostream>

__STL_BEGIN_NAMESPACE

// Note: cin and wcin are both associated with stdio.  The C standard
// (Amendment 1, section 4.6.2.1) says that it is an error to mix
// wide- and narrow-oriented I/O on the same stream.  This implies
// that it is an error to use both cin and wcin in the same C++
// program; the same applies to cout and wcout, and cerr/clog and
// wcerr/wclog.

extern istream cin;
extern ostream cout;
extern ostream cerr;
extern ostream clog;

extern wistream wcin;
extern wostream wcout;
extern wostream wcerr;
extern wostream wclog;

__STL_END_NAMESPACE

#endif /* __SGI_STL_IOSTREAM */

// Local Variables:
// mode:C++
// End:

iostream基本上什么都没有,只是几个extern 并没有重载运算符。ostream和istream也不是它的父类。运算符的重载就是在istream和ostream中。你可以自己看看源代码。


捣蒜大师Edison
2018-03-28 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1334万
展开全部
格式化输出:operator<<:inserts formatted data
(std::basic_ostream的公有成员函数)
格式化输入:operator>>:extracts formatted data
std::basic_istream的公有成员函数)

std::basic_iostream是继承了他们的>>和<<
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式