1. 程式人生 > >C++namespace名稱空間

C++namespace名稱空間

one.h檔案

#pragma once
#include<iostream>
using namespace std;

namespace oneDog
{
	void oneDogName();
}

 

one.cpp檔案

#include"one.h"

void oneDog::oneDogName()  //記住在這裡實現的時候要加上名稱空間
{
	cout << "我是oneDog" << endl;
}

 

 main.cpp檔案

#include<iostream>
#include"one.h"
using namespace std;
//1.名稱空間下可以放函式方法類,變數,結構體
//2.名稱空間必須定義在全域性作用域下
//3.名稱空間可以巢狀名稱空間
namespace A
{
	namespace B
	{
		void test()
		{
			cout << "A作用域下巢狀的B作用域下的test函式" << endl;
		}
	}
}
//4.名稱空間是開放的,可以隨時為原來的名稱空間新增新的內容
namespace A
{
	void test()
	{
		cout << "A名稱空間新新增的test函式" << endl;
	}
}
//5.匿名名稱空間,這個裡面的內容只能被當前檔案使用
namespace
{
	void test1()
	{
		cout << "我是匿名名稱空間中的test1函式" << endl;
	}
}
//6.可以為名稱空間起一個別名
namespace verylongName
{
	void test()
	{
		cout << "我是換過名後的名稱空間下的test函式" << endl;
	}
}
namespace veryshortName = verylongName;
int main()
{
	oneDog::oneDogName();  //呼叫noeDog名稱空間下的oneDogName函式
	A::B::test();  //呼叫巢狀名稱空間作用域的test函式
	A::test();  //呼叫為A名稱空間新新增的test函式
	test1();
	veryshortName::test();

	return 0;
}