3

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

#include<iostream>

int main( ) {

  char c;

  std::cin >> c;

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

  return( 0 );

}

Givencin是类 istream 的一个对象,执行operator>>时会调用哪个特化std::cin >> c;

4

2 回答 2

2

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

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

于 2013-08-23T13:26:45.087 回答
1

如此处所述,operator>>也被实现为cin的非成员函数

非成员函数:

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

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

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

11/返回:在。

    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);
于 2013-08-23T13:32:46.400 回答