c++高手,cout<<endl;重载的是什么?(在线)

“cout<<对象”,里面的<<是重载ostream的对象cout里面的函数,可是怎么cout<<endl;就有点奇怪了,endl是个函数,书上说可以写成endl(cou... “cout<<对象”,里面的<<是重载ostream的对象cout里面的函数,可是怎么cout<<endl;就有点奇怪了,endl是个函数,书上说可以写成endl(cout);
怎么变成“cout<<函数”这是怎么重载的?
展开
 我来答
applematrix
2009-04-21 · 超过16用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:38.1万
展开全部
cout是一个ostream,ostream里面重载了<<操作符,其中一个是:
_Myt& __CLR_OR_THIS_CALL operator<<(_Myt& (__cdecl *_Pfn)(_Myt&))
{ // call basic_ostream manipulator
_DEBUG_POINTER(_Pfn);
return ((*_Pfn)(*this));
}
参数为一个函数指针,_Myt是一个类型定义,等价于basic_ostream<_Elem, _Traits>,而endl函数为:
template<class _Elem,
class _Traits> inline
basic_ostream<_Elem, _Traits>&
__CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)
{
...
}
所以cout<<endl的时候就通过函数指针调用了endl函数,同时将cout作为参数传入,调用的实际上就是endl(cout)。

代码是VS 2005里面的
沙锶昔舞美告07
2015-10-21 · TA获得超过1.5万个赞
知道小有建树答主
回答量:2377
采纳率:91%
帮助的人:198万
展开全部
cout是一个ostream,ostream里面重载了<<操作符,其中一个是:
_Myt& __CLR_OR_THIS_CALL operator<<(_Myt& (__cdecl *_Pfn)(_Myt&))
{ // call basic_ostream manipulator
_DEBUG_POINTER(_Pfn);
return ((*_Pfn)(*this));
}
参数为一个函数指针,_Myt是一个类型定义,等价于basic_ostream<_Elem, _Traits>,而endl函数为:
template<class _Elem,
class _Traits> inline
basic_ostream<_Elem, _Traits>&
__CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)
{
...
}
所以cout<<endl的时候就通过函数指针调用了endl函数,同时将cout作为参数传入,调用的实际上就是endl(cout)。

代码是VS 2005里面的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暗黑系巨龙吟风
2009-04-21 · 超过17用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:0
展开全部
个人理解是直接输出个回车?
什么都没输出,直接来个回车吧
期待他人解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式