繁体   English   中英

istream::operator>>( const char& ) 如何实现,因为没有实现这样的功能?

[英]How does istream::operator>>( const char& ) as no such function is implemented?

查看istream文档,您会看到没有函数istream &operator>>( char& ) ,但是如果您编译并运行下面的代码,它将按预期工作。

#include<iostream>

int main( ) {

  char c;

  std::cin >> c;

  std::cout << c << std::endl;

  return( 0 );

}

给定cin是类 istream 的对象,当std::cin >> c;时调用operator>> std::cin >> c; 被执行?

operator>>也被实现为非成员函数

istream& 运算符>> (istream& is, char& c)

如前所述这里operator>>也实现为CIN的非成员函数

非成员函数:

istream& operator>>( istream& st, char& ch );

总是有标准在第 27.7.2.2.3节中明确说明

27.7.2.2.3 basic_istream::operator>> [istream::extractors]

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM