c++ namespace 命名空间

using namespace std;  //using编译指令, 它会一次性把std空间中的所有实体全部引进来

//要求:熟悉空间中的实体
//目前来说,不推荐使用

 

namespace wd
{
  void display()
  {
    cout << "wd::display() " << endl;
  }

}//end of namespace wd

namespace tls
{

  void display()
  {  
    cout << "tls::display() " << endl;
  }

}//end of namespace tls



int main(void)
{
  wd::display();//:: 作用域限定符, 这是完整形式
  tls::display();

  return 0;
}


using std::cout;// using声明机制, 简化操作, 不会把所有的实体引进来

//命名空间在一个文件之中可以出现多次
//相当于一个黑洞
namespace wd
{
  int number = 10;
  void show();//声明
}//end of namespace wd


namespace tls
{

  void display()
  {
    cout << "tls::display() " << endl;
    wd::show();
  }

}//end of namespace tls

namespace wd
{
  void display()
  {
    cout << "wd::display() " << endl;
    tls::display();
  }

  void show()//实现
  {
    cout << "wd::show()" << endl;
  }

}//end of namespace wd


int number = 10;

namespace wd
{
  int number = 100;

  namespace lwh
  {

    void display()

    {
      cout << "wd::lwh::display()" << endl;
    }
  }//end of namespace lwh

}//end of namespace wd

namespace tls
{
  int number = 1000;

  void display(int number)//形参number会屏蔽其他的number
  {
    cout << "number = " << number << endl;
    cout << "wd::number = " << wd::number << endl;
    cout << "tls::number = " << tls::number << endl;
    cout << "全局变量 number = " << ::number << endl;//匿名命名空间
  }

}//end of namespace tls

猜你喜欢

转载自www.cnblogs.com/Davirain/p/11769481.html