C語言定義了3個層次的作用域:文件、函數和複合語句。
C++ 引入了類的作用域,類是在文件內的。
在不同的作用域中,可以定義相同名字的變量,互不幹擾,編譯器能夠區別它們。
1、命名空間的概念C語言中,只有一個全局作用域,所有全局標識符共享一個作用域,因此絕對不能重名。
但隨著系統越來越複雜,通常不會僅由一個人來開發,不同的人開發同一個系統,不可避免地會出現變量或函數的命名衝突,當將所有人的代碼結合到一起時,就會因為變量或函數重名,導致編譯失敗。
因此,C++提出了命名空間的概念:
命名空間將全局作用域分成不同的部分;
不同命名空間的標識符可以同名,不會發生衝突;
命名空間可以嵌套。
namespace Name1
{
namespace Name2
{
/*...*/
}
/*...*/
}
全局作用域也叫默認命名空間。
2、舉例說明比如現在有一個小學,學校裡有六個年級,每個年級有三個班級。
現在一位老人來這個學校找到校長,要找一位叫張三的學生,感謝他在公共汽車上給自己讓座。
現在校長(編譯器)要找張三,但學校裡有很多叫張三的人,怎麼確定是哪個張三呢?
這時如果知道張三是哪個年紀,哪個班級,那麼很快就能確定是誰。
假設是三年級二班的張三,那麼這個三年級二班就是命名空間。
namespace grade
{
namespace class
{
student zhang_san;
}
}
C++的命名空間,就是一種為了避免命名衝突的機制。
3、使用方式C++的命名空間,有兩種使用方式:
// 導入整個std命名空間到當前作用域
using namespace std;
// 只導入cout到當前作用域
using std::cout;
來源:算法集市(頭條)
原鏈:https://www.toutiao.com/a6845627757724959243/
轉發是最大的鼓勵!謝謝您的支持!
重要通知
想加入工控上位機學習技術交流群
請添加班長為好友
並備註:地區-行業-姓名暱稱獲取進群資格。
分享到朋友圈,和朋友們一起分享吧
——————————————————————
▣ 來源:網絡-百度文庫,侵刪!
▣ 聲明:本文素材系網絡收集,工控上位機學習編輯整理。文中所用視頻、圖片、文字版權歸原作者所有。但因轉載眾多,無法確認真正原始作者,故僅標明轉載來源。如涉及作品版權問題,煩請及時聯繫17621634088(微信同號),我們將即刻確認版權並按國家相關規定支付稿酬!