【C++】入门 --- 命名空间

这篇具有很好参考价值的文章主要介绍了【C++】入门 --- 命名空间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言


【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言

🍪一、前言

本篇文章是《C++ 初阶》 专栏的第一篇文章,从本专栏开始就进入了C++的学习了哦!本篇的内容是C++入门:命名空间的学习希望烙铁们可以理解消化哦🥰!!!

🍩1、C++简介

🚩C++是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
🚩C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计
🚩C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

🍩2、C++关键字

C++总计63个关键字,C语言32个关键字
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言

🍪二、命名冲突

我们在C语言阶段了解过这样一个函数:rand函数,该函数用于生成伪随机整数

🥰我们来看下面这段代码👇

#include<stdio.h>

int rand = 5;

int main()
{
	printf("%d\n", rand);

	return 0;
}

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
运行成功,结果毋庸置疑,没有什么错误

🥰我们再来看一段代码👇

#include<stdio.h>
#include<stdlib.h>

int rand = 5;

int main()
{
	printf("%d\n", rand);

	return 0;
}

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
为什么包含了 头文件<stdlib.h> 就运行不通过了呢?

🚨原因是程序运行时,会遵循局部优先原则,也就是会先在局部作用域种寻找变量,如果在局部作用域中没有找,则会去全局作用域中寻找;
🚨此程序在全局作用域中找到了两个 rand(一个为 <stdlib.h>头文件内所包含的的rand函数,另一个则是自己创建的变量rand),也就是全局作用域中声明的标识符重复定义了,这时就发生了命名冲突,所以程序会报错

🍪三、命名空间

在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace关键字来解决。

🍩1、命名空间定义

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{} 即可,{}中即为命名空间的成员命名空间中可以定义变量/函数/类型

🥰请看代码与注释👇

#include<iostream>
namespace Lvdr
{
	//命名空间中可以定义变量/函数/类型
	int rand = 10;

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

	struct Node
	{
		struct Node* next;
		int val;
	};
}
//一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中

🚨一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中

🦄命名空间可以进行嵌套定义:
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
🥰请看代码与注释👇

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;
		}
	}
}

🚩命名空间嵌套定义时,内层命名空间和外层命名空间即使存在相同的标识符,也不会发生命名冲突。
🚩同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
🚩一个工程中的test.h和上面test.cpp中两个N1会被合并成一个
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言

🍩2、命名空间的使用

🔴作用域限定符 ::

在一般情况下,若是想访问命名空间内的成员,可以使用 作用域限定符 ::(域解析操作符)

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
我们可以看这么一段代码,无法执行,因为没有使用 作用域限定符 ::

🐸命名空间的三种使用方式:

1️⃣加命名空间名称及作用域限定符 ::
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
被嵌套命名空间中内容的访问:
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
2️⃣使用using将命名空间中某个成员引入:
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
解除N1、N2命名空间对b、d的作用域的限制
3️⃣使用using namespace +命名空间名称: 解除相应命名空间对其中所有内容的作用域限制
【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言
第3️⃣种用法相当于是取消相应的命名空间,对待这种使用方式应持谨慎态度(尤其是在大项目中),建议使用的访问命名空间内容的方1️⃣2️⃣种。

🍪四、C++输入&输出

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;

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

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言

🔴说明:
🚩1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含 < iostream > 头文件
以及按命名空间使用方法使用std。
🚩2. coutcin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含 < iostream > 头文件中。
🚩3. <<是流插入运算符>>是流提取运算符
🚩4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。
C++的输入输出可以自动识别变量类型。
🚩5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,
这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有
一个章节更深入的学习IO流用法及原理。

🦄可以自动识别变量的类型:
🥰请看代码与注释👇

#include <iostream>
using namespace std;
int main()
{
	int a;
	double b;
	char c;

	// 可以自动识别变量的类型
	cin >> a;
	cin >> b >> c;

	cout << endl;
	cout << a << endl;
	cout << b << " " << c << endl;
	return 0;
}

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言

🦄std命名空间的使用惯例:

std是C++标准库的命名空间,如何展开std使用更合理呢?
🚩1. 在日常练习中,建议直接using namespace std即可,这样就很方便。
🚩2. using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 +using std::cout展开常用的库对象/类型等方式。

😍这期内容比较好理解,希望烙铁们有所收获哦!

总结🥰
以上就是 【C++】命名空间 的全部内容啦🥳🥳🥳🥳
本文章所在【C++初阶】专栏,感兴趣的烙铁可以订阅本专栏哦🥳🥳🥳
前途很远,也很暗,但是不要怕,不怕的人面前才有路。💕💕💕
小的会继续学习,继续努力带来更好的作品😊😊😊
创作写文不易,还多请各位大佬uu们多多支持哦🥰🥰🥰

【C++】入门 --- 命名空间,C++ 初阶,c++,命名空间,开发语言文章来源地址https://www.toymoban.com/news/detail-600978.html

到了这里,关于【C++】入门 --- 命名空间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++初阶(一)】学习前言以及命名空间

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++初阶之路⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习排序知识   🔝🔝 对于复杂的问题,规模较大的程序 需要高度的抽象和建模时 C语言不再适合应用于这种场景 于是在1982年 C++创始人 Bjarne Stroustrup 在C语言

    2024年02月11日
    浏览(40)
  • 【C++初阶(一)】学习前言 命名空间与IO流

    本专栏内容为:C++学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C++。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C++ 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编程知识 C++是基于C语言而产生的,它既可以进行C语言的

    2024年02月08日
    浏览(85)
  • 【C++初阶】C++基础(上)——C++关键字、命名空间、C++输入&输出、缺省参数、函数重载

    目录 1. C++ 2. 命名空间 2.1 命名空间的定义 2.2 命名空间的使用 3. C++输入输出 4. 缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 5. 函数重载 5.1 函数重载概念 5.2 C++支持函数重载的原理——名字修饰(name Mingling) 5.3 extern \\\"C\\\" ❀❀❀ 没有坚持的努力,本质上并没有多

    2024年02月15日
    浏览(41)
  • 计算机语言 之【C++】入门级知识讲解(命名空间,C++输入输出,缺省参数,函数重载,引用,内敛函数,auto关键字,for循环,指针空值nullptr)

    三点睡六点起,阎王夸我好身体 不到三点我不睡,太平间里抢C位 目录: 前言: 本片博客是以学习过C语言之后进入C++学习为前提,讲解C++入门级知识,为C++之后的学习做铺垫 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀

    2024年04月11日
    浏览(113)
  • 【C++入门到精通】 C++入门—命名空间

            前面我们学习了C语言,并且知道了C语言的基础语法与用途。接下来一段时间我们会再来学习一下基于C语言并且根据C语言改造的一门新的语言—C++          硕硕相信只要各位大佬们跟着我的博客看下去,肯定能有不少的收获。二话不说咱们要开车了,坐稳扶好呦

    2024年02月16日
    浏览(30)
  • 【C++】入门 --- 命名空间

    本篇文章是《C++ 初阶》 专栏的第一篇文章,从本专栏开始就进入了C++的学习了哦!本篇的内容是C++入门:命名空间的学习希望烙铁们可以理解消化哦🥰!!! 🚩C++是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由 本贾尼·斯特劳斯特卢普在ATT贝尔

    2024年02月16日
    浏览(23)
  • C++从入门到精通——命名空间

    命名空间是一种用于封装和组织代码的结构,可以避免名称冲突并提供更好的代码组织性。在编程中,命名空间通常用于将相关的类、函数、变量等组织在一起,形成一个独立的逻辑单元。通过使用命名空间,可以更加清晰地组织代码,提高代码的可读性和可维护性。同时,

    2024年04月09日
    浏览(29)
  • C++入门:命名空间与输入输出

    目录 1.命名空间 1.1 命名空间的定义 1.2 命名空间的使用 1.3 标准命名空间 std 2.C++输入输出 我们在初学C++时,经常会在代码开头看到这样的一行代码: 这行代码到底什么意思呢?我们学完命名空间就可以理解了。 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些

    2024年02月11日
    浏览(34)
  • 『C++成长记』C++入门——命名空间&缺省参数

     🔥 博客主页: 小王又困了 📚 系列专栏: C++ 🌟 人之为学,不日近则日退 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 目录 一、C++的认识 📒1.1什么是C++ 📒1.2C++的发展 二、C++ 三、命名空间 📒3.1为什么有命名空间 📒3.2命名空间定义 📒3.3命名空间使用 📒3.4命名空间的

    2024年02月08日
    浏览(26)
  • 【C++入门系列】——命名空间和输入输出

    📚lovewold少个r博客主页     ⚠️ 本文重点 : c++入门第一个程序和基本知识讲解 😄 每日一言 :忙,不会死,人只有越忙越活,流水不腐,户枢不蠹。 ​作者主页 前言 谈谈我个人对语言和职业的看法 C++的历史发展 C++第一个程序 命名空间 定义命名空间 使用此命名空间 命

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包