广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++命名空间using namespace std是什么意思
  • 808
分享到

C++命名空间using namespace std是什么意思

摘要

目录一、 前言二、作用域分解运算符三、命名空间使用介绍四、using namespace std总结 一、 前言 c++中的using namespace std是什么意思

一、 前言

c++中的using namespace std是什么意思呢?为了理解其中的含义,我们首先需要学习一个概念叫做命名空间

我们都知道,C语言规定变量名不能与关键字冲突,但是并没有规定变量名不能与库中的变量名冲突,但这在实际的操作的过程中就会产生意想不到的错误:

例如,将一个time变量放在main函数中,根据局部优先的原则,time变量就会被理解为一个局部变量。但当time作为一个全局变量出现的时候,由于time库中也含有一个名叫time的函数名,头文件被展开后,此time被理解为变量名还是函数名就会产生歧义。

而C++中出现的命名空间概念就是为了填C语言中的这个坑。

✪总结:同一个域中不能出现两个重名的变量名/函数名,而命名空间的提出就是为了对标识符的名称进行本地化,以此解决命名污染的问题,其作用就是定义一个新的作用域

二、作用域分解运算符

在讲命名空间的时候首先给大家介绍一个作用域分解运算符 " :: "

✪使用说明
  A,B表示两个类,而在A,B中都有成员member

  • A :: member表示类A成员中的member
  • B :: member表示类B成员中的member

当前面的类不指定的时候,默认为全局

前面说到变量名冲突的时候遵循局部优先原则,那么我们能不能就想访问到全局变量呢?我们就可以通过作用域分解运算符实现:

三、命名空间使用介绍

namespace my_variant
{
	int time = 10;
}

int main()
{
	printf("%d", my_variant::time);
}

✪基本介绍①

  • namespace是一个C++中的一个关键字
  • 我们将变量定义在自己创建的my_variant命名空间,以避免被污染
  • 访问命名空间中的变量,需要使用作用域分解运算符
  • 命名空间只能定义在全局,其中定义的变量为全局变量
namespace my_variant
{
	int time = 10;

	typedef struct Stu
	{
		char name[10];
		int age;
		int score;
	}Stu;
	
	namespace _variant
	{
		int Add(int a, int b)	
		{
			return a + b;
		}
	}
	
}

int main()
{
	my_variant::Stu data = {0};
	int ret = my_variant::_variant::Add(1, 2);
}

✪基本介绍②

  • 从上面我们可以看到命名空间中过的内容不只局限于变量名,也可以是函数名,类型名
  • 命名空间可以无限次嵌套命名空间,同样的使用里面的内容的时候也需要多次使用作用域分解运算符——一层一层对应的关系。使用嵌套命名空间可以解决命名空间内部的命名冲突
  • 一个工程中同名的命名空间最终会被合并为一个命名空间

当然我们可以看到,每次要使用命名空间中的变量都需要写很多额外的内容,有没有什么办法可以简化操作呢——我们想要访问命名空间中的space_b有两种方法:

namespace space_a
{
	int a1 = 1;
	int a2 = 2;
	namespace space_b
	{
		int b1 = 10;
		int b2 = 20;
		int b3 = 30;
	}
	namespace space_c
	{
		int c1 = 5;
		int c2 = 6;
	}
}
using namespace space_a;
using namespace space_b;

方法①:首先将space_a中的内容全部释放出来,再释放其中的space_b的内容(注意顺序不能颠倒,否则space_b认不出来)

using namespace space_a:: space_b;

方法②用什么放什么。只是将space_b中全部的内容释放出来,而不会对其他的内容产生影响。

释放出来之后我们便可以愉快自由的使用了:

四、using namespace std

经过上面的学习,我们不难理解using name std的作用是释放std命名空间中的变量名,函数名以及类型名,其中std是C++标准库的命名空间。

我们在书写代码的时候为了方便于是将C++标准库中的命名空间完全展开了,但是最好的做法我想还是用什么放什么。

另外,标准C++库中提供两种头文件,前面以C开头的头文件是支持命名空间的,而后者是不支持的。

总结 

到此这篇关于C++命名空间using namespace std是什么意思的文章就介绍到这了,更多相关C++命名空间using namespace std内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++命名空间using namespace std是什么意思

本文链接: https://www.lsjlt.com/news/177312.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++命名空间using namespace std是什么意思
    目录一、 前言二、作用域分解运算符三、命名空间使用介绍四、using namespace std总结 一、 前言 C++中的using namespace std是什么意思...
    99+
    2023-01-10
    c++ using namespace std c++命名空间的使用 c++命名空间是什么意思有什么用
  • C++标准库和std命名空间是什么
    这篇文章主要介绍“C++标准库和std命名空间是什么”,在日常操作中,相信很多人在C++标准库和std命名空间是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++标准库和std命名空间是什么”的疑惑有所...
    99+
    2023-06-03
  • C++命名空间namespace怎么定义
    今天小编给大家分享一下C++命名空间namespace怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、命名空间的定...
    99+
    2023-07-05
  • mongodb中的命名空间是什么意思
    mongodb中命名空间指的是数据库名称和集合名称的串联,而集合是mongodb在其中存储BSON对象,并且mongodb每个集合和每个索引都对应一个命名空间。具体内容如下:MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填...
    99+
    2022-10-16
  • PHP的子命名空间是什么意思
    本篇内容介绍了“PHP的子命名空间是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在PHP中,命名空间可以帮我们做成许多事情。可以让...
    99+
    2023-06-20
  • C++命名空间的作用是什么
    C++命名空间的作用是解决命名冲突的问题。在C++中,可以使用命名空间将一组相关的变量、函数、类等封装起来,从而避免与其他代码中的同...
    99+
    2023-08-18
    C++
  • ASP空间是什么意思
    这篇文章主要介绍“ASP空间是什么意思”,在日常操作中,相信很多人在ASP空间是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP空间是什么意思”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!&n...
    99+
    2023-06-07
  • 免费空间是什么意思
    免费空间指的是免费的虚拟主机,主要是主机商为了推广专门设置的网络空间,它的优势是不用费用或费用低廉,适合用于搭建小型网站和应用程序。如果按国别来区分免费空间的种类,则可以分成两大类“国内免费空间、国外免费空间”。在选择免费空间主机商后,根据...
    99+
    2022-10-18
  • 什么是VB.NET命名空间
    这篇文章主要为大家展示了“什么是VB.NET命名空间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“什么是VB.NET命名空间”这篇文章吧。对于命名组织在程序集中定义的对象你有深入的了解吗?程序集...
    99+
    2023-06-17
  • 国内PHP空间是什么意思
    小编给大家分享一下国内PHP空间是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP空间即是能够支持PHP程序运行的主机空间,目前国内的PHP空间还是很...
    99+
    2023-06-07
  • java中arraylist命名空间是什么
    Java中没有命名空间的概念,ArrayList是java.util包中的一个类。Java中没有命名空间的概念,但是可以使用包名来进...
    99+
    2023-05-31
    arraylist命名空间 arraylist
  • ADO.NET常用命名空间是什么
    这期内容当中小编将会给大家带来有关ADO.NET常用命名空间是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。命名空间(NameSpace)记录了对象的名称与所在的路径。使用ADO.NET中的对象时,必...
    99+
    2023-06-17
  • C++名称空间特性是什么
    本篇内容介绍了“C++名称空间特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、名称空间特性1.嵌套我们可以将名称空间声明进行嵌套...
    99+
    2023-06-22
  • airpods pro空间音频的意思是什么
    本篇内容介绍了“airpods pro空间音频的意思是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!airpods pro空间音频是:A...
    99+
    2023-06-20
  • php命名空间的作用是什么
    PHP命名空间的作用是避免命名冲突和提高代码的可读性。在PHP中,命名空间允许我们在代码中定义一个独特的标识符前缀,以避免与同样标识...
    99+
    2023-10-12
    php
  • php中的子命名空间是什么
    这篇文章主要介绍“php中的子命名空间是什么”,在日常操作中,相信很多人在php中的子命名空间是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中的子命名空间是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • Python3命名空间和作用域是什么
    这篇文章主要讲解了“Python3命名空间和作用域是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python3命名空间和作用域是什么”吧!命名空间命名空间(Namespace)是从名称...
    99+
    2023-06-02
  • php命名空间的调用顺序是什么
    这篇文章主要讲解了“php命名空间的调用顺序是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php命名空间的调用顺序是什么”吧!完全限定函数、类和常量的调用将会在编译的时候解析。例如,n...
    99+
    2023-06-20
  • PHP编程语言的命名空间是什么
    这篇文章主要介绍“PHP编程语言的命名空间是什么”,在日常操作中,相信很多人在PHP编程语言的命名空间是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP编程语言的命名空间是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-04
  • 域名列表不能为空指的是什么意思
    "域名列表不能为空"指的是在网站或者域名服务器中,必须有一份完整的域名列表,这个列表中包含了所有已经注册的域名信息,以及它们对应的I...
    99+
    2023-06-14
    域名列表 域名
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作