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

79 阅读4分钟

前言

  我们学习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 myVarible = 10; }

3、使用命名空间

MySpace::myFunction;

int x = MySpace::myVarible;

也可以使用using声明

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

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

注意:

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

总结 C++的优点

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

命名空间的优点 防止命名冲突:在不同的命名空间中,相同名称的实体不会发生冲突。 提高代码可读性和维护性:通过逻辑上分组相关的实体,使代码结构更清晰。 便于大型项目管理:在大型项目中,不同模块或库可以使用不同的命名空间,避免成员之间的命名冲突。支持代码的封装和重用:命名空间可以被用作封装一组功能的手段,便于代码的重用。