C++ namespace淺析。本站提示廣大學習愛好者:(C++ namespace淺析)文章只能為提供參考,不一定能成為您想要的結果。以下是C++ namespace淺析正文
有一些C語言的基礎,突然想看看C++,在Codeblocks上新建工程的時候會生成一個打印"Hello World"的程序,和C語言些許不同。其中最突出的就是"using
namespace std;"這行。
#include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; }
namespace是C++新加的一個概念,中文名為命名空間,相對來說更便捷地解決了函數重名和變量命名的問題。其一般定義如下形式:namespace 命名空間名{變量聲明或函數聲明}。一般使用命名空間中的變量或函數則通過"命名空間名::變量或函數"來使用,如下面代碼所示。可能有人會問命名空間存在的意義在哪,自己寫的程序完全可以規避命名相同的情況,不過假如你調用其他人所寫的程序則有很大的可能有變量重名以及函數重名的問題,然而命名空間的撞車概率則相對較小,顯然。
再看代碼中的程序第二行為"using namespace std;",這個using又是做什麼的。我們知道#include<iostream>是引入iostream文件中的代碼,其中定義了std命名空間,而cout,endl則聲明在std命名空間內,假如不使用using關鍵字,cout和endl則需要寫成std::cout以及std::endl,而cout以及endl都是我們需要經常使用的,這就增加了大量的代碼量,通過using則可以在主函數中直接調用命名空間中的變量和函數。但是命名空間之間變量命名有沖突也能使用using關鍵字,但是在使用變量的時候仍需在前面加上命名空間以示區別。
#include <iostream> using namespace std; namespace A { int x=0; void function(){}; } namespace B { int x=1; void function(){}; } using namespace A; using namespace B; int main(){ cout << A::x << endl; cout << B::x << endl; return 0; }