当前位置: 首页 > wzjs >正文

山东省住房和城乡建设厅网站首页长春百度seo排名

山东省住房和城乡建设厅网站首页,长春百度seo排名,wordpress牌照,上海未来网站建设公司🌟 各位看官好,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C命名空间的语法知识 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给…

 

🌟 各位看官好,我是egoist2023

🌍 种一棵树最好是十年前,其次是现在!

🚀 今天来学习C++命名空间的语法知识

👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

背景知识

命名空间(namespace)

为何引入namespace

namespace的定义

namespace的使用


背景知识

C++的起源要追溯到1979年,当时Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)在贝尔实验室从事计算机科学和软件工程的研究项目。面对项目中复杂的软件开发任务,他感受到了现有语言(如C语言)在表达能力、可维护性和可扩展方面的不足。
于是,C++之父(本贾尼)在C语言的基础上添加了面向对象编程的特性,设计出了C++语言的雏形, 此时的C++已经有了类、封装、继承等核心概念,为后来的面向对象编程奠定了基础。(C语言是面向过程)
在随后的几年中,C++的应用逐渐增多。同时,C++的标准库和模板等特性也得到了进一步的完善和发展。随着C++的爆火后,便成立了ANSI和ISO国际标准化组织的联合标准化委员会,并在1998年其标准被投入使用。
C++版本更新

鄙人以为,每一个学C++的人都应当知道本贾尼(若你学了C++,有一天同事问你C++创始人是谁,你却闷声摇头,怕是引人发笑)。


命名空间(namespace)

为何引入namespace

C语言存在一个命名冲突的问题 ,而本贾尼针对这一问题写在了C++中。在C/C++中,变量、函数和类(后续会讲解)都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。因此,需要一个新的语法以避免命名冲突,而 namespace关键字的出现就是针对这种问题的
如果有一天你和你的同事分别写了一个Add函数,此时想调用函数时会有语法报错,这是因为存在了名字冲突。
当你自己写了个命名空间,这时就不会起冲突,

你和同事各自写了命名空间,将Add函数各自封装在里面。若想调用其中一个Add函数,用起的名字::的方式即可调用对应的函数。

namespace的定义

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

namespace myself
{
    // 命名空间中可以定义变量/函数/类型
    int rand = 10;
    int Add(int left, int right)
    {
        return left + right;
    }
    struct Node
    {
        struct Node* next;
        int val;
    };
}

  • namespace本质:定义一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,因此上面Add函数就不在冲突了。
  • C++中域:函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响 编译查找逻辑,还会影响变量的⽣命周期,命名空间域和类域不影响变量⽣命周期。
  • namespace只能定义在全局,也可嵌套定义。

namespace myself
{

     //嵌套使用
    namespace self
    {
        int Add(int left, int right)
        {
            return left + right;
        }
    }
}

  • 项目工程中多文件中定义的同名namespace会认为是⼀个namespace,不会冲突。
  • C++标准库都放在⼀个叫std(standard)的命名空间中。

namespace的使用

编译器在查找一个变量的声明/定义时,默认只会在局部或者全局查找,并不会在命名空间中查找(namespace和全局域互相独立)。

如何访问命名空间中定义的变量/函数呢?有三种方式:
• C++中提供了 :: 指定命名空间访问,项目中推荐这种方式。
using 将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。
展开 命名空间中全部成员,这种方式在项目中不推荐,冲突风险很大。
但在平日的练习、刷算法题中,可以使用(如展开std命名空间)。

http://www.dtcms.com/wzjs/810527.html

相关文章:

  • 网站的静态页面用什么做网站营销优化
  • wordpress整站导入上海网页设计公司济南兴田德润团队怎么样
  • 做优惠卷网站倒闭了多少wordpress 修改配置文件
  • 公司网页网站建设 ppt新能源汽车价格趋势
  • 广西美丽乡村建设网站网站技术说明书模板
  • 网站建设中 显示自己做的网站可以开直播
  • iis发布网站页面出问题怎么建设自己导购网站
  • 网站建设网站制作价格西地那非片的副作用
  • 山西省住房建设厅网站首页山东银汇建设集团网站
  • 深圳讯美网站建设iis部署网站 win7
  • 企业加强网站建设的必要性昆明市建设厅官方网站
  • 济南建设银行公积金网站河南网站seo费用
  • 上传网站需要什么软件wordpress 搬家到本地
  • 龙华民治网站建设代理ip免费软件
  • 太原网站建设平台新式装修
  • 网站建立费用外贸福步论坛登录
  • 尉氏做网站浙江重大工程交易网
  • 浙江住房城乡建设厅网站网站制作的电话
  • 北京网站建设哪家便宜建设厅五大员证书查询网站
  • 网站维护 推广注册查询系统
  • 网站建设实践报告3000字昆明做网站优化的公司
  • 网站定制公司报价wordpress自定义分类分页
  • 潍坊网站建设wfzhy网络有限公司简介
  • 余姚 网站建设绿色学校网站模板
  • 做网站管理系统app软件开发就是网站开发吗
  • 用jsp建设网站网站后台更新没有变化
  • 网站开发前端培训文章作者标签WordPress
  • 虚拟主机建站教程网站建设怎么在图片上加字
  • 做网站能带来什么html网站登陆注册怎么做
  • seo站长工具苏州网站建设搜王道下拉