查看istream
documentation,您将看到没有函数istream &operator>>( char& )
的实现,但如果您编译并运行下面的代码,它将按预期工作。
#include<iostream>
int main( ) {
char c;
std::cin >> c;
std::cout << c << std::endl;
return( 0 );
}
给定cin
是类istream的对象,调用operator>>
的特化
何时执行std::cin >> c;
?
答案 0 :(得分:2)
operator>>
也实现为non-member functions。
istream的&安培;运营商GT;&GT; (istream&amp; is,char&amp; c)
答案 1 :(得分:1)
如上所述here,operator>>
也是以cn的非成员函数实现的。
非会员职能:
istream& operator>>( istream& st, char& ch );
§27.7.2.2.3一节中明确规定了标准:
27.7.2.2.3 basic_istream :: operator&gt;&gt; [istream的::提取强>
11 / 返回: in。
template<class charT, class traits> basic_istream<charT,traits>& operator>> (basic_istream<charT,traits>& in, charT& c); template<class traits> basic_istream<char,traits>& operator>> (basic_istream<char,traits>& in, unsigned char& c); template<class traits> basic_istream<char,traits>& operator>> (basic_istream<char,traits>& in, signed char& c);