C++ 学习笔记

C++学习笔记

1.Namespaces 命名空间

把逻辑上相关联的东西放在一起,用namespaces 给他起一个名字 ??? 名字后面没有分号,名字(函数、数据等)叫这个名字空间的成员

实现namespace 是实现接口与实现分离的关键。

我们用标准的c++ 的 std; 这是using 指令

使用命名空间,实现模块化程序设计,实现接口与实现的分离。   (我只需要关注接口,而不需要关注实现)

C++ 允许为一个namespace 声明多个同名的namespace 接口 ,但是实际操作中,我们并不会这样去实现,而是用一个不同的名字,但是内部的实现相同 这就是namespace 面对不同的用户,不同的使用者的一般做法.





namespace parser {
    double expr (bool) ; // 非定义声明
    double prim (bool get) {/*  */}
}

namespace parser {
    double prim (bool);
}

double parser :: prim (bool get) {
    // 具体实现
}

:: 表示约束符 
  • 声明 定义性声明,非定义性声明 、

2.编译过程

  1. compile 源文件 —— 目标文件
  2. build 目标文件 —— 可执行文件
  3. run 执行 exe

  4. 接口 (外界可以看到的成语只要能看到就可以)

所有命名空间中的非定义声明,接口应该与实现相分离 (也可以不分离,但是一般会分离)

使用约束符 :: 来确定约束的函数的命名空间,约束符有自己的作用域和函数的作用域一样。

4.using 声明

在成员的实现内,对特定的namespace 的特定成员使用 using 声明,约束范围在该 namespace 的所有实现之内. 注意using 的作用域就好了

出现在两种位置

  1. namespace 接口中
  2. 函数定义中

`using function :: prim(bool);

5.using 指令

using namespace error; 使用完 using 指令之后,在其作用域内,都是使用这个名字空间中的成员

出现的位置 :

  1. 函数的定义中
  2. namespace 接口中 (所有使用该 namespace 中命名都在使用的命名空间中找)

6.总结

  1. namespace 引入了成员和接口的概念
  2. 接口和非定义性声明的异同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值