The standard Namespace problem
Hii,
我对编程C ++比较陌生。 我知道函数cout,cin等...在标准名称空间中定义。 但我们还包括用于运行程序的iostream头文件。
那么,是不是
1 2 3 4 5 6 7 8 9 10 | namespace std { declaration of cout declaration of cin ..... some other declarations etc.... } |
和isior中的实际实现istream和ostream ...... ????
或者,是否反过来...... ??? 喜欢 ....
1 2 3 4 5 6 7 | namespace std { complete definition of cout complete definition of cin ......... } |
和他们的签名只是放在iostream文件中,如...
1 2 3 4 5 6 7 | iostream file { std :: cout std :: cin ..... } |
请提供您认为可以帮助我更好地理解的任何示例或链接
I do know that the functions cout ,
cin etc... are defined in the standard
name space.
这些不是真正的函数,而是
But we also include iostream header file for running the program.
您更喜欢包含标题,以便编译源代码(编译器需要声明等)。
问题的其余部分相当模糊。如何实现标准库几乎取决于实现。该标准要求如果包含
1 2 3 4 5 6 7 8 9 10 11 | 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; } |
标准真的没有说。实现者完全有可能将它作为一个只有头的库来实现,但是他们更有可能只将声明放在头文件中并将实现放在CRT中。
编辑:但是,
要使用
为了让您了解它是如何实现的,类