對using namespace std;的解釋
所謂namespace墩邀,是指標識符的各種可見范圍。C++標準程序庫中的所有標識符都被定義于一個名為std的namespace中红柱。
由于namespace的概念,使用C++標準程序庫的任何標識符時蓖乘,可以有三種選擇:
1锤悄、直接指定標識符。例如std::ostream而不是ostream嘉抒。完整語句如下:
std::cout << std::hex << 3.4 << std::endl;
2零聚、使用using關鍵字。
using std::cout;
using std::endl;
以上程序可以寫成
cout << std::hex << 3.4 << endl;
3些侍、最方便的就是使用using namespace std;
這樣命名空間std內(nèi)定義的所有標識符都有效(曝光)隶症。就好像它們被聲明為全局變量一樣。那么以上語句可以如下寫:
cout << hex << 3.4 << endl;
命名空間(名字空間)
命名空間是C++的一種機制岗宣,用來把單個標識符下的大量有邏輯聯(lián)系的程序?qū)嶓w組合到一起蚂会。此標識符作為此組群的名字。命名空間用關鍵字namespace 來定義:
#include <iostream>
using namespace std;
namespace printA{
void print(){ // 如果沒有void返回類型耗式,默認為int
cout << "using namespace printA .." << endl;
}
}
namespace printB{
void print(){
cout << "using namespace printB .." << endl;
}
}
namespace printC {
void print(){
cout << "using namespace printC .." << endl;
}
namespace printD{
void print(){
cout << "using namespace printD .." << endl;
}
}
}
int main(void){
printA::print();
printB::print();
printC::print();
printC::printD::print();
}