文章目錄
- 一、命名空間定義
- 二、訪問命名空間內的成員
- 三、標準命名空間:std
- 四、嵌套命名空間
一、命名空間定義
在C++中,命名空間(namespace)是一種將標識符分組的機制,用于避免重命名。例如:
int a = 3;int main()
{int a = 0;printf("%d",a);//這里是0呢,還是3呢?答案是0.//因為:局部變量>全局變量.那我們想調用3如何進行呢,這時候就引入了namespace.return 0;
}
當我們想不刪除局部變量的時候引用3的時,就需要命名空間。
namespace Maysheeo
{int a = 3;
}
二、訪問命名空間內的成員
當我們想要命名空間的成員時,則:
(命名空間名字):: (命名空間成員)
**常用于單個使用**using namespace (命名空間名字)
**常用于直接展開變量,便于全局直接使用**using (命名空間名字)::(命名空間成員)
**常用于部分展開**
如上文:
int main()
{printf("%d",Maysheeo::a);return 0;
}
三、標準命名空間:std
在C++標準庫中所有組件(如cout,cin)都在std命名空間中,因此我們常用:
#include<iostream>//頭文件
using namespace std;
int main()
{cout<<"hello,world"<<endl;//這里就相當于printf("hello world\n");//endl這個關鍵詞就是std里面的,類似于"\n"//cout和cin的好處就是它會自動識別類型,如:char x = 'a';cout<<x<<endl;return 0;}
四、嵌套命名空間
命名空間是可以嵌套的,調用的時候則:
(命名空間名字1)::(嵌套的命名空間名字)::(成員名字)
例如:
#include<iostream>
using std::cout;
using std::endl;
namespace Maysheeo
{namespace maysheeo{int a = 3;}
}int main()
{cout << Maysheeo::maysheeo::a << endl;return 0;
}