2013-08-23 76 views
3

看着istream documentation,你會發現沒有函數istream &operator>>(char&)的實現,但是如果你編譯並運行下面的代碼,它將會像預期的那樣工作。istream :: operator >>(const char&)如何實現這樣的功能?

#include<iostream> 

int main() { 

    char c; 

    std::cin >> c; 

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

    return(0); 

} 

鑑於cin爲類istream的,其中operator>>專業化當執行std::cin >> c;稱爲 對象?

+1

http://www.cplusplus.com/reference/istream/istream/operator-free/ –

回答

2

operator>>也實現爲non-member functions

istream的&操作者>>(istream的&是,炭& C)

+1

也見第27.7.2.2.3/11。 – chris

1

如上所述hereoperator>>也實現爲非成員函數的CIN

非成員函數:

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

總是有標準的部分§27.7.2.2.3說,它明確:

27.7.2.2.3 basic_istream: :操作員>> [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); 
相關問題