命名空间std详解

时间:2020-12-09 17:00:11

namespace   是c++的命名空间。为了在编程时解决起名容易重复的问题,提出了命名空间的概念。在同一个命名空间中对变量,函数,类等起名不能重复。而当在不同的命名空间时这些名字是可以重复的。比如:  
  namespace   n1  
  {  
    int   a;  
  }  
   
  namespace   n2  
  {  
    int   a;  
  }  
   
  使用时可以这样:  
  n2::a   =   8;  
  n1::a   =   8;  
  也可以声明我要使用的命名空间是n2:  
  using   namespace   n2;  
  这样以后默认的命名空间就是n2了,可直接写:  
  a   =   8;  
  同n2::a   =   8;  


  而using   namespace   std;  
  中的std是标准库函数使用的命名空间。这里先要说一下包含库函数的方法。老式的方法是:  
  #include   <stdio.h>  
  这是为了和c兼容,他不用命名空间就可以直接调用里面的库函数如:  
  printf("%d",2);  
  而新式的方法是:  
  #include   <cstdio>  
  这是为了更好的对类进行支持,但要使用命名空间如:  
  using   namespace   std;  
  printf("&d",2);   
  如果不加上using   namespace   std;这一句  
  那么在程序中用std::cout,std::cin,std::endl效果也是一样的

 

如果编译器同时支持<iostream>和  
  <iostream.h>   。如果使用了#include  
  <iostream>,   得到的是置于名字空间std下的iostream   库的元素;  
  如果使用#include   <iostream.h>,得到的是置于全局空间的同样的元素。在全  
  局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名  
  字冲突的发生.