C++ 中cout


话说像下面的语句,应该大家都明白这是通过重载operator <<函数来实现的。

cout<<123;
cout<<"ssss";

但是像

cout<

是怎样实现的?

起初猜想endl是一个class或者struct,再通过一个friend函数来实现的。

但是翻下stl的实现,原来endl是一个函数!

template
inline basic_ostream<_CharT, _Traits>& endl(basic_ostream<_CharT, _Traits>& __os) 
{
	return flush(__os.put(__os.widen('\n')));
}

__ostream_type& operator<<(__ostream_type& (*__pf)(__ostream_type&))
{
	return __pf(*this);
}

可见当cout<从下面的代码也可以看出实现原理的一二。

cout.operator <<(endl);


你可能感兴趣的:(C++ 中cout)