C++中cout和std::cout的区别

C++中cout和std::cout的区别

cout 是ostream类的预定义对象,用于将数据打印到标准输出设备上。通常,在Linux操作系统上为G++编译器编写程序时,程序需要使用“std”名称空间。我们像这样编写使用代码: using namespace std; 然后就可以访问任何对象,如cout、cin等。

//演示不使用名称空间的cout的用法
#include <iostream>
int main()
{
    std::cout << "GeeksforGeeks";
    return 0;
}  

输出:

GeeksforGeeks

std:cout 名称空间是一个声明性的区域,在其中定义了一些东西。因此,在这种情况下, cout 是在 std 名称空间中定义的。因此, std::cout 表示在 std 名称空间中定义了cout,否则使用在 std 名称空间中定义的 cout 。因此,可以使用std::cout来使用在std名称空间中定义的cout。

//演示使用名称空间的用法
#include <iostream>
using namespace std;
int main()
{
    cout << "GeeksforGeeks";
    return 0;
}  

输出:

GeeksforGeeks

如果既不使用“using namespace std”也不使用“std ::”,那会发生什么呢?

//演示不使用名称空间和std ::的用法
#include <iostream>

int main()
{
    cout << "GeeksforGeeks";
    return 0;
}  

编译错误:

main.cpp: In function ‘int main()’:
main.cpp:5:2: error:
  ‘cout’ was not declared in this scope
  cout << "GeeksforGeeks" << endl;

main.cpp:5:2: note: suggested alternative:
In file included from main.cpp:1:0:
/usr/include/c++/7/iostream:61:18: note:   ‘std::cout’
   extern ostream cout;  /// Linked to standard output

“using namespace std cout”和“std::cout”的区别?

在C++中,cout和std::cout是相同的,但它们之间有一些基本区别,如下所示:

序号 cout std::cout
1. 必须在程序中写入“名称空间std” 如果先前未声明“名称空间std”,则必须使用“std::cout”
2. cout是ostream类的预定义对象 “std::cout”调用标准模板/Iostream库,因为“cout”仅在“std”名称空间中定义
3. 预先声明名称空间可以访问许多函数,如cin、cout等 这只是在函数内部执行的std库的隐式初始化,即与主要计算一起执行

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程