08.命名空间

08.命名空间

1. 命名空间的作用

  • 命名空间是一种作用域的划分,通常用于区分项目中的模块或组件

2.命名空间的使用

  • 1.命名空间namespace可以分开使用
namespace abc 
{
    
    
	int nWidth = 5;
}
namespace abc
{
    
    
	int nHeight = 6;
}
  • 2.命名空间可以嵌套
namespace abc
{
    
    
	int a = 2;
	namespace def
	{
    
    
		int b = 3;
	}
}
abc::a = 4;
abc::def::b = 6;
  • 3.命名空间可以取别名
namespace abc
{
    
    
	int a = 2;
	namespace def
	{
    
    
		int b = 3;
	}
}

namespace ABC = abc;
namespace DEF = abc::def;

ABC::a = 6;
DEF::b = 2;
  • 4.命名空间中不仅可以定义变量,也可以定义函数
namespace foo
{
    
    
	int a = 10;
	void fooFunc()
	{
    
    
		printf("foo");
	}
}
foo::fooFunc();
  • 5.命名空间也是作用域,同样也满足作用域从内向外查找的规则
int nWidth = 5;
namespace foo
{
    
    
	int a = 9;
	int nWidth = 8;
	namespace boo
	{
    
    
		nWidth = 6;//命名空间同样符合作用域从内向外查找的规则,因此最先找到的是foo命名空间下的nWidth = 8
		//那么如何在一个命名空间或者函数的局部作用域内使用全局作用域内的变量呢?
		::nWidth = 10;//这里使用的就是全局作用域内的变量
	}
}

可以通过::nwidth的方式使用全局作用域内的变量nWidth
::可以称为是四饼

3.引用命名空间的方法

  • 1.使用命名空间::变量名访问,如:foo::nWidth(建议这样使用)
  • 2.声明命名空间 using namespace foo;(不推荐,可能会造成名字冲突)
  • 3.声明只是用命名空间中的部分变量或函数 usingfoo::boo;

猜你喜欢

转载自blog.csdn.net/m0_45388819/article/details/113816458
今日推荐