namespace的用法
1.什么是命名空間
通常我們學c++的時候經常看見頭文件下有一句using namespace std,有什么用呢?
例如:
#include<iostream>
using namespace std;
int main()
{
cout << "Hello,World!" << endl;
return 0;
}
如果我們去掉這句的話,程序就會報未聲明變量cout和未聲明變量endl。
原來std命名空間是C++中標准庫類型對象的命名空間。如果加上using namespace std這句,程序就把文件內出現的用std命名的關鍵字都自動在前面加上std::。
2.namespace命名空間有什么用呢
namespace命名空間是在大型項目開發中,為了避免命名沖突而引入的一種機制。
比如A公司定義了命名變量score,B公司也定義了score,而且B公司里也有個小組C。但是我要先使用B公司的score變量,然后在使用A公司的score變量,最后使用B公司里的小組C。該怎么辦呢?
A公司的文件
namespace A
{
int score=5;
}
B公司的文件
namespace B
{
int score=10;
namespace C{
int score=4;
}
}
使用方法
#include<iostream>
#include"A.cpp"
#include"B.cpp"
using namespace std;
int main()
{
{ //B聲明在此范圍有效
using B::score;
cout<<score<<endl;
}
{ //A聲明在此范圍有效
using A::score;
cout<<score<<endl;
}
{ //C聲明在此范圍有效
using B::C::score;
cout<<score<<endl;
}
return 0;
}
這就可以區分三個不同的score了。