为什么在C++程序中写using namespace std很重要

为什么在C++程序中写using namespace std很重要

本文将讨论在C++程序中使用 “using namespace std” 的用法。

namespace的需要:

  • 在同一作用域中不能给多个变量、函数、类等起相同的名字。
  • 因此,引入了namespace来解决这种情况。

程序1:

以下是C++程序示例,演示了在函数和变量名称相同情况下使用namespace:

// C++程序示例,演示了在函数和变量名称相同时使用namespace
#include <iostream>
using namespace std;
 
// 命名空间n1
namespace n1 {
int x = 2;
 
// 显示命名空间n1中的消息
void fun()
{
    cout << "This is fun() of n1"
         << endl;
}
}
 
// 命名空间n2
namespace n2 {
 
int x = 5;
 
// 显示命名空间n2中的消息
void fun()
{
    cout << "This is fun() of n2"
         << endl;
}
}
 
// 主函数
int main()
{
    // 使用作用域解析运算符(::)调用方法和变量
    cout << n1::x << endl;
 
    // 函数调用
    n1::fun();
 
    cout << n2::x << endl;
 
    // 函数调用;
    n2::fun();
 
    return 0;
}  
C++

输出结果:

2
This is fun() of n1
5
This is fun() of n2
C++

解释:

  • 在上面的示例程序中,n1和n2都有相同名称的变量和函数x和fun()。
  • namespace用于减少或限制任何变量或函数的作用域。
  • 在上述代码中,变量x和方法fun()被限制为namespace n1和n2。因此,它们的作用域不在n1或n2之外。
  • 不必每次在变量或函数定义中都使用作用域解析运算符(::),可以使用“using”指令解决。
  • using指令表示将命名空间中编写的整个代码包括在闭合作用域中。

程序2:

以下是C++程序示例,演示了使用“using”指令:

// C++程序演示了using指令的用法
#include <iostream>
using namespace std;
 
// 命名空间n1
namespace n1 {
int x = 2;
void fun()
{
    cout << "This is fun() of n1"
         << endl;
}
}
 
// 引入命名空间
using namespace n1;
 
// 主函数
int main()
{
    cout << x << endl;
 
    // 函数调用
    fun();
 
    return 0;
}  
C++

输出结果:

2
This is fun() of n1
C++

解释:

  • 在上面的程序中,写了“using namespace n1”之后,不需要使用作用域解析来利用n1的成员。
  • 可以理解为使用“using”将命名空间中编写的代码复制到它所编写的作用域中。

如果在 main() 内部编写“using namespace n1 ”,并试图在不同的函数中使用成员(fun()和x在这种情况下),会导致编译时错误。

程序3:

下面是一个C++程序,演示了在 main() 函数内部使用“using namespace”的用法:

//C++程序演示了在main()函数内部使用“using namespace”
#include
using namespace std;
namespace n1{
    int x=2;
    void fun(){
        cout<<"This is fun() of n1"<
C++

输出:

为什么在C++程序中写using namespace std很重要

解释:

  • 著名的“std”(标准)是一个名称空间,其成员在程序中使用。
  • 因此,“std”名称空间的成员是cout,cin,endl等。
  • 该名称空间存在于iostream.h文件中。

下面是在C++中显示写入iostream.h中的内容的代码片段:

//iostream.h中写入的代码
namespace std{
    ostream cout;
    i0stream cin;
    //还有更多代码
}  
C++

解释:

  • 现在当输入 cout <<“GeeksforGeeks”;, 编译器在我们的程序中搜索cout,该cout保存在std名称空间中,因此给编译器的指令是如果编译器在当前范围内找不到任何东西,则尝试在std名称空间中查找它。
  • 不需要写入名称空间,只需使用每次使用std的成员时使用作用域解析(::)。例如,std::cout,std::cin,std::endl等。

程序4:

下面是使用std的C++程序演示:

//C++程序,用于说明使用std
# include
//驱动代码
int main(){
    int x=10;
    std::cout<<" The value of x is "<
C++

输出:

The value of x is 10
C++

解释: 无论是写入“using namespace std”还是使用作用域解析,程序的输出都将是相同的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册