我想知道究竟是什么。我的意思是功能或类......
我确信它不是一个函数,因为我们使用cin的方式与调用函数的方式非常不同。
留下类,对象或其他类似的选项。
究竟是什么?
答案 0 :(得分:5)
C ++标准§27.4.1 [iostream.objects.overview]
#include <ios> #include <streambuf> #include <istream> #include <ostream> namespace std { extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; }
p1标头声明与对象关联的对象 由声明的函数提供的标准C流 (27.9.2),并包括使用这些标题所需的所有标题 对象。
您还可以查看gcc的implementation on github:
namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION // Standard stream objects. // NB: Iff <iostream> is included, these definitions become wonky. typedef char fake_istream[sizeof(istream)] __attribute__ ((aligned(__alignof__(istream)))); typedef char fake_ostream[sizeof(ostream)] __attribute__ ((aligned(__alignof__(ostream)))); fake_istream cin; fake_ostream cout; fake_ostream cerr; fake_ostream clog; #ifdef _GLIBCXX_USE_WCHAR_T typedef char fake_wistream[sizeof(wistream)] __attribute__ ((aligned(__alignof__(wistream)))); typedef char fake_wostream[sizeof(wostream)] __attribute__ ((aligned(__alignof__(wostream)))); fake_wistream wcin; fake_wostream wcout; fake_wostream wcerr; fake_wostream wclog; #endif _GLIBCXX_END_NAMESPACE_VERSION } // namespace
答案 1 :(得分:3)
cin
是istream
类的 对象