从命名空间开始学习C++

文章目录


前言

  我们学习c语言时候发现很多不方便的地方 如在取变量名、函数名时候会和库中的变量名冲突,为了补充这些不足,一位伟人就在c语言增加了许多特性,随着时间的推移,C++增加了很多其他的编程范式,包括程序过程化、泛型编程和函数式特性等,从而成为一种多范式编程语言。


一、c++在c语言上的补充

C++补充了C语言存在的不足主要体现在以下几个方面:

  1. 面向对象编程(OOP):C++引入了类(Class)和对象(Object)的概念,支持封装、继承和多态等面向对象的基本特性。这有助于提高代码的重用性、可维护性和可扩展性。

  2. 强化的类型安全:C++提供更多的类型检查,比如引入了引用(Reference)类型,严格区分了指针和数组,增加了const和volatile等关键字以提供更多的上下文信息,从而使得编码更加安全。

  3. 泛型编程:通过模板(Templates)机制,C++支持泛型编程,使得程序员可以编写与数据类型无关的代码。这不仅可以提高代码的复用率,还可以保证类型安全。

  4. 异常处理:C++引入了异常处理机制,允许在检测到错误时进行控制流的改变。这比C语言中的错误处理方式(通常依赖于检查函数返回值或设置全局变量)要灵活和安全得多。

  5. 标准模板库(STL):C++提供了一套强大的标准模板库,包括容器、迭代器、算法和函数对象等。这些工具极大地丰富了语言的表达能力,提高了开发效率。

  6. 更好的初始化和类型推导:C++11及其后续版本引入了统一的初始化语法、auto关键字和decltype,使得变量的声明和初始化更加简洁,类型推导也更加智能。

  7. 现代语言特性:C++不断进化,新增了lambda表达式、智能指针、并发编程支持等现代编程语言特性,这些都是C语言所不具备的。

  8. 命名空间:C++引入了命名空间(Namespace),有效地解决了大型项目中名称冲突的问题。

二、解析c++中的命名空间


  在C++中,命名空间(Namespace)是一种封装标识符的机制,用以避免命名冲突。它允许开发者将全局作用域中的实体(如函数、变量、类型等)组织在一个具有指定名称的作用域内。这是一种有效的组织代码和防止命名冲突的方式,特别是在大型项目或者多人合作的项目中。

1.基本语法。

namespace 名称{
  //定义变量、函数、类

}

2.例如定义一个命名,其中包含一个函数和一个变量。

namespace MySpace{
    void  myFunction(){

        //函数实现
     }
   int myVariable = 10;

}

3.使用命名空间

MySpace::myFunction(); //调用函数
int x = MySpace::myVariable; //访问变量

也可以使用using声明

using MySpace::myFunction; // 现在可以直接调用myFunction()而不需要前缀
myFunction();

using namespace MySpace; // 导入整个命名空间
myFunction(); // 直接调用
int y = myVariable; // 直接访问

注意:

  • 写项目时,尽量不要展开标准库
  • 日常练习时应该展开标准库
  • 写项目使用部分常用内容展开

总结

C++的优点

C++的应用范围非常广泛,从底层的系统开发到高级的应用程序开发,几乎涵盖了所有计算机科学和工程的领域。正是因为C++提供了既接近机器又能提供高级抽象的能力,使其成为了一个非常强大和灵活的工具。

命名空间的优点

  1. 防止命名冲突:在不同的命名空间中,相同名称的实体不会发生冲突。
  2. 提高代码可读性和维护性:通过逻辑上分组相关的实体,使代码结构更清晰。
  3. 便于大型项目管理:在大型项目中,不同模块或库可以使用不同的命名空间,避免成员之间的命名冲突。
  4. 支持代码的封装和重用:命名空间可以被用作封装一组功能的手段,便于代码的重用。
  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值