C++初阶-命名空间-创新互联

现在我们开始进入cpp的学习,我们首先要介绍的是命名空间(namespace),这是一个关键字。

在高唐等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都网站设计 网站设计制作定制制作,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,成都外贸网站制作,高唐网站建设费用合理。

我们自己定义的变量、函数可能跟库里面重名冲突。当进入公司项目组,多人协作,同事之间写的代码可能存在命名冲突。而c语言没有好的办法解决这一问题,因此,cpp提出了一个新语法,命名空间。

#include#include//定义一个叫qwe的命名空间  -- 域
namespace qwe
{
    //他们还是全局变量,放在静态区
	int rand = 0;
	int a = 1;
}

int main()
{
	printf("%d\n", rand);
	printf("%d\n", qwe::rand);
	return 0;
}

        这里的rand如果不指定命名空间域的话,就和库里面的rand函数命名冲突了。当然,命名空间中也可以定义变量、函数、类型

namespace qwe
{
	//命名空间中可以定义变量/函数/类型
	int rand = 10;

	int Add(int left, int right)
	{
		return left + right;
	}

	struct Node
	{
		struct Node* next;
		int val;
	};
}

  当然,命名空间可以嵌套

namespace N1
{
	int a;
	int b;

	int Add(int left, int right)
	{
		return left + right;
	}

	namespace N2
	{
		int c;
		int d;

		int Sub(int left, int right)
		{
			return left - right;
		}
	}
}

  那么,命名空间如何使用呢?这里我们需要知道域作用限定符  ::  。在c语言阶段我们已经知道了一些。

int a = 0;
int main()
{
	int a = 1;
	printf("%d\n", a);         //1
	printf("%d\n", ::a);       //0

	return 0;
}

  知道了这些,我们理解起来应该会很轻松。 

int main()
{
	qwe::rand = 20;         //变量
    
	struct qwe::Node node;  //结构体的调用稍微有点区别

	qwe::Add(1, 2);         //函数

	N1::Add(1, 2);
	N1::N2::Sub(3, 4);      //嵌套命名空间的调用

	struct asd::ListNode ln;  //命名空间在头文件中也一样
	asd::ListInit();

	return 0;
}

  全部展开也是可以的,展开一部分也是可以的

using namespace asd;

using asd::ListNode;

  接下来就是我们初学者常见的代码了

#includeusing namespace std;   //C++库的实现定义在一个叫std的命名空间

int main()
{
	cout<< "hello world"<< endl;

	return 0;
}

还有这样的

#includeint main()
{
	std::cout<< "hello world"<< std::endl;

	return 0;
}

这样的

#includeusing std::cout;
using std:: endl;

int main()
{
	cout<< "hello world"<< endl;
	return 0;
}

到这里我们已经能看懂这些代码的大概了

下面我们来简单介绍下cout、endl和cin

#includeusing namespace std;      //练习的话我们全部展开好了

int main()
{
	cout<< "hello world"<< endl;
	cout<< "hello world\n";
	printf("hello world\n");

	int i = 10;
	double d = 1.11;                    //cout 流插入
	cout<< i<< " "<< d<< endl;      //自动识别类型

	cin >>i >>d;                       //流提取
	cout<< i<< " "<< d<< endl;

	return 0;
}

  

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:C++初阶-命名空间-创新互联
浏览路径:http://scyanting.com/article/dhdgcd.html