日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++命名空间---namespace

發(fā)布時間:2025/3/15 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++命名空间---namespace 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C++?命名空間

?C++ 應(yīng)用程序中。例如,您可能會寫一個名為 func() 的函數(shù),在另一個可用的庫中也存在一個相同的函數(shù) func()。這樣,編譯器就無法判斷您所使用的是哪一個 func() 函數(shù)。

因此,引入了命名空間這個概念,專門用于解決上面的問題,它可作為附加信息來區(qū)分不同庫中相同名稱的函數(shù)、類、變量等。使用了命名空間即定義了上下文。本質(zhì)上,命名空間就是定義了一個范圍。

定義命名空間

命名空間的定義使用關(guān)鍵字?namespace,后跟命名空間的名稱,如下所示:

為了調(diào)用帶有命名空間的函數(shù)或變量,需要在前面加上命名空間的名稱,如下所示:

name::code; // code 可以是變量或函數(shù),name是命名空間的名字

eg:

#define _CRT_SECURE_NO_WARNINGS#include<iostream> namespace space_test1 {typedef int T;int a = 1000;void fuc(void){std::cout << "I am space_test1 \n";} }namespace space_test2 {typedef double T;int a = 100;void fuc(void){std::cout << "I am space_test2\n";} } int main() {//通過命名空間的不同,可以使用相同的函數(shù),變量,類型space_test2::T high = 1.1;space_test1::T age = 25;space_test2::fuc();space_test1::fuc();std::cout << "high=" << high << std::endl;std::cout << "age="<< age<<std::endl;std::cout << "space_test1::a=" << space_test1::a << std::endl;std::cout << "space_test2::a=" << space_test2::a << std::endl;system("pause");return 0; }

using 指令

您可以使用?using namespace?指令,這樣在使用命名空間時就可以不用在前面加上命名空間的名稱。這個指令會告訴編譯器,后續(xù)的代碼將使用指定的命名空間中的名稱。

?

為什么我們不推薦using namespace? ...的做法:

?

命名空間使用這樣直接的聲明,破壞了它想要解決的同名函數(shù),變量,類等問題,雖然在不引起二義性的情況下,我們會方便一些,因為可以少輸入幾個字符,但是,在不能保證是否有相同函數(shù),變量,類的情況下,還是使用命名空間前綴更合適。

轉(zhuǎn)載于:https://www.cnblogs.com/yangguang-it/p/9612938.html

總結(jié)

以上是生活随笔為你收集整理的c++命名空间---namespace的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。