亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++命名空間namespace怎么定義

發布時間:2023-04-04 10:35:07 來源:億速云 閱讀:128 作者:iii 欄目:開發技術

今天小編給大家分享一下C++命名空間namespace怎么定義的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、命名空間的定義

定義命名空間,使用namespace關鍵字,后面跟命名空間的名字,然后接一對花括號{ } 即可,{ }中即為命名空間的成員。

1.一般定義

namespace test
{
    int a = 10;
    int b = 100;
    int ADD(int x, int y)
    {
        return x + y;
    }
}

2.嵌套定義

namespace test
{
    int a = 10;
    int b = 100;
    int Add(int x, int y)
    {
        return x + y;
    }
    namespace test2
    {
        int c(99);
        int d(9);
		//c++可以使用括號來進行列表初始化
        int Sub(int x, int y)
        {
            return x - y;
        }
    }
}

3.重名定義

同一個工程中允許存在多個相同名稱的命名空間,編譯器最后會合成同一個命名空間中。

例如:

namespace N1  //N1是命名空間的名稱
{
	//用花括號{ }將命名空間的內容包起來
	//命名空間的內容,即可以定義變量,也可以定義函數
	int a;
	int Add(int x, int y)
	{
		return x + y;
	}
}
 
namespace N1  //再次定義命名空間 N1
{
	int Mul(int x, int y)
	{
		return x * y;
	}
}

實際上等同于:

namespace N1  //N1是命名空間的名稱
{
    //用花括號{ }將命名空間的內容包起來
    //命名空間的內容,即可以定義變量,也可以定義函數
    int a;
    int Add(int x, int y)
    {
        return x + y;
    }
    int Mul(int x, int y)
    {
        return x * y;
    }
}

二、命名空間的使用

C++為了防止命名沖突,把自己庫里面的東西都定義在一個std的命名空間中要使用標準庫里面的東西,有三種方式:

  • 加命名空間的名稱及作用域限定符。

  • 使用using引入命名空間的成員。

  • 使用using namespace 命名空間名稱引入,將所有名稱全展開。

1.命名空間的名稱及作用域限定符

代碼如下:

namespace test
{
	int a = 10;
	int b = 100;
	int Add(int x, int y)
	{
		return x + y;
	}
	namespace test2
	{
		int c(99);
		//c++可以使用括號來進行初始化
		int d(9);
		int Sub(int x, int y)
		{
			return x - y;
		}
	}
}
int main()
{
	std::cout << test::Add(test::a, test::b) << std::endl;
	std::cout << test::test2::Sub(test::test2::c, test::test2::d) << std::endl;
	return 0;
}

指定命名空間&ndash;麻煩,每個地方都要指定,但也是最規范的方式。

2.使用using namespace 命名空間全展開

代碼如下:

using namespace std;

把std整個展開,相當于庫里面的東西全部到全局域里面去了,使用起來方便但是可能會有與自己命名空間定義的沖突,規范工程中不推薦這種,日常練習可以用這種。

3.使用using引入命名空間的成員

代碼如下:

int c = 100;
namespace N
{
	int a = 10;
	int b = 20;
	int Add(int left, int right)
	{
		return left + right;
	}
	int Sub(int left, int right)
	{
		return left - right;
	}
}
 
using std::cout;
using std::endl;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", N::b);
    printf("%d\n", N::Add(1, 2));
    printf("%d\n", N::Sub(1, 2));
    int c = 10;
    printf("%d\n", c);   //局部變量優先,所以c為10
    printf("%d\n", ::c); //指定訪問左邊域,空白表示全局域
}

對部分常用的庫里面的東西展開->針對1和2的折中方案,項目中也經常使用。

以上就是“C++命名空間namespace怎么定義”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南召县| 略阳县| 定日县| 平陆县| 北宁市| 龙游县| 正宁县| 潢川县| 略阳县| 枣强县| 天等县| 北京市| 清远市| 仁布县| 汉阴县| 康平县| 新化县| 改则县| 榕江县| 克拉玛依市| 洛川县| 河南省| 霍邱县| 苏州市| 绩溪县| 吉林市| 九台市| 甘南县| 故城县| 东莞市| 隆安县| 鱼台县| 丹巴县| 丘北县| 泾源县| 商都县| 思茅市| 阳谷县| 辉南县| 临猗县| 红原县|