【C++技能树】NameSpace --命名空间的使用

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

 【C++技能树】NameSpace --命名空间的使用

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

目录

0.为什么有命名空间:

1.命名空间的使用:

2.命名空间访问顺序:

3.可嵌套式定义:

完结撒花

【C++技能树】NameSpace --命名空间的使用

 

开始C++的学习咯!

0.为什么有命名空间:

在c++中有很多重复的的名字,也就是常见的字母排列组合不下了,可能会导致你想用的名字与库里已经有的名字重复了.例如:

#include<iostream>
int main()
{
    int rand=0;
}

我在这段代码中想使用rand这个变量名字.这是正常的行为.

但当我导入了stdlib这个库之后:

【C++技能树】NameSpace --命名空间的使用

就出现了这样的报错.表示rand被重新定义了这是什么原因呢?

因为stdlib中有一个叫做rand的函数.与你要使用的rand变量名字重复了

那如何解决这个问题呢?

1.命名空间的使用:

上述的问题可以通过C++的特性来解决.

使用命名空间(namespace)

也就是将刚刚的代码放入到一个空间当中,使用的时候通过先访问这个空间 在访问空间下的变量的方式来访问他.

#include<iostream>
#include<stdlib.h>
namespace yeye{
    int rand=5;
}

int main()
{
    //int rand=0;
    printf("%d",yeye::rand);
}

其中yeye就是我们的命名空间的名称.

通过::来访问.其中::叫做类型作用域操作符.

2.命名空间访问顺序:

int re=1;

int main()
{
    int re=2;
    printf("%d",re);
}

如果有这样一段代码,试想一下最后的结果是输出?

答案显然是2,因为局部变量的优先级高于全局变量

那如果我想访问全局变量re呢?该如何去做?

int re=1;

int main()
{
    int re=2;
    printf("%d",::re);
}

只需要在对象前加上::,即表示访问全局变量

若没有全局变量,则会访问展开的命名空间.

namespace yeye
{
    int re=3;
}
using namespace yeye;
    int main()
    {
        printf("%d",re);
    }

 当然,若只想访问一个变量/函数,也可以直接定义using namespace::变量/函数名

namespace yeye
{
    int re=3;
    int c=0;
}
using yeye::c;
    int main()
    {
        printf("%d",re);
        printf("%d",c);
    }

 此时访问re则会报错

【C++技能树】NameSpace --命名空间的使用

3.可嵌套式定义:

也就是像套娃一样,可以一个命名空间嵌套在另一个命名空间当中.

namespace yeye
{
    int re=3;
    int c=0;
    namespace bibi{
        int re=2;
    }
}
    int main()
    {
        printf("%d",yeye::re); //打印3
        printf("%d",yeye::bibi::re); //打印2
    }

完结撒花:

🌈本篇博客的内容【NameSpace --命名空间的使用】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!文章来源地址https://www.toymoban.com/news/detail-415563.html

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

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

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

相关文章

  • C++篇 ---- 命名空间namespace

    C++篇 ---- 命名空间namespace

    由于在c语言中在定义时可能会出现重命名现象,造成空间冲突,c语言中有命名冲突:1 和库冲突。2 互相之间的冲突,变量命名冲突。所以c++中就有了对其改进的namespace,针对重定义,解决空间冲突。 以下是c语言实现的代码 这里会报错是由于变量rand与库函数中的ra

    2023年04月16日
    浏览(11)
  • 【C++初阶】命名空间 namespace

    【C++初阶】命名空间 namespace

    在正式进入C++前,我们需要先了解了解C++。顾名思义,C++是基于C的一种编程语言,相较于C,C++写出来的代码更简洁,有时候C需要几百行代码,而C只需要几十行就可以解决,C++也很好的解决了C中存在的一些问题,例如: 命名冲突。 C++的命名空间 就能很好的解决这个问题。

    2023年04月19日
    浏览(8)
  • C++ 之命名空间namespace【详解】

    C++ 之命名空间namespace【详解】

    命名空间(Namespace)在编程中的作用主要有以下几点意义 避免命名冲突:命名空间提供了一种将标识符(如变量、函数、类等)组织和隔离的方式。不同的命名空间可以拥有相同名称的标识符,避免了不同模块或库之间的命名冲突。 提高可读性和可维护性:通过使用命名空

    2024年02月16日
    浏览(9)
  • 详解C++中的命名空间(namespace)

    详解C++中的命名空间(namespace)

    个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C++之路】 在C++中,总共有63个,大家还记得在C语言中有多少个吗,没错,在C语言中总共有32个。 下面是C++的: asm do if auto return try contin

    2023年04月19日
    浏览(12)
  • 【C#】【命名空间(namespace)】.NET6.0后支持的顶级语句使用问题

    创建C#项目且使用.Net6.0以上的版本时,默认code会使用顶级语句形式: 1、略去static void Main(String[ ] args)主方法入口; 2、隐式使用(即隐藏且根据代码所需要的类自动调用)其他命名空间(包括): using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net

    2024年02月08日
    浏览(11)
  • Kubernetes集群命名空间(Namespace)

    Namespace是对一组资源和对象的抽象集合. 常见的 pod, service, deployment 等都是属于某一个namespace的(默认是 default) 不是所有资源都属于namespace,如nodes, persistent volume,namespace 等资源则不属于任何 namespace 使用 kubectl get all --namespace=命名空间名称 可以查看此命名空间下的所有资源

    2024年02月16日
    浏览(11)
  • k8s学习笔记(四):命名空间(namespace)详解

    k8s学习笔记(四):命名空间(namespace)详解

    Kubernetes中的Namespace是一种用于在 集群内部组织和隔离资源 的机制。一个Namespace可以看作是一个 虚拟的集群 ,它将物理集群划分为多个逻辑部分,每个部分都有自己的一组资源(如Pod、Service、ConfigMap等)。 Namespace 适合用于 隔离不同用户创建的资源 用于给集群中的 任何对

    2024年02月12日
    浏览(10)
  • C++命名空间的定义以及使用

    C++命名空间的定义以及使用

    🌏博客主页: 主页 🔖系列专栏: C++ ❤️感谢大家点赞👍收藏⭐评论✍️ 😍期待与大家一起进步! 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名

    2024年02月02日
    浏览(10)
  • 【C++的奇迹之旅(二)】C++关键字&&命名空间使用的三种方式&&C++输入&输出&&命名空间std的使用惯例

    【C++的奇迹之旅(二)】C++关键字&&命名空间使用的三种方式&&C++输入&输出&&命名空间std的使用惯例

    C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式 等。熟悉C语言之后,对C++学习有一定的帮助,本章节主要目标: 补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用 域方面、IO方面、函数方面、

    2024年04月09日
    浏览(10)
  • 13、c++使用单例模式实现命名空间函数

    13、c++使用单例模式实现命名空间函数

    本案例实现一个test命名空间,此命名空间内有两个函数,分别为getName()和getNameSpace(); 声明命名空间及函数 命名空间内实现单例类 实现一个单例类,构造函数要为private,自身对象为private 静态成员函数(才可以调用静态成员变量) 实现命名空间函数 首先调用的是类的静态

    2023年04月23日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包