24、C++ 命名空间、类型转换运算符和智能指针详解

C++ 命名空间、类型转换运算符和智能指针详解

1. 命名空间(Namespaces)

在大型程序中,代码分散在多个文件且由不同程序员编写,名称冲突的概率会增加。例如,在 queue.h 文件中定义了 Queue 类,而在使用的某个库(如 game.h )中也使用了相同的名称,编译时就会因 Queue 类的重复定义而失败。为避免此类名称冲突,C++ 引入了命名空间机制。

命名空间是一个具有自己作用域的命名区域,可用于存放程序实体(如类、函数等)。它能将程序实体组织成逻辑组,防止与外部声明的名称发生冲突。例如,可以创建 Network 命名空间,将与网络协议和设备相关的类放入其中。

1.1 创建命名空间

使用 namespace 关键字创建命名空间,示例如下:

namespace A
{
    int var;
    double d = 1.2;
    int f();
    struct S {...};
    class C {...};
} // 不需要分号

在命名空间内部可以声明变量、函数、模板、类和对象等元素。命名空间可以在全局命名空间或另一个命名空间内声明,但不能在块(如函数)内声明。每个命名空间成员的作用域从其声明点延伸到命名空间的末尾。

可以使用命名空间名称添加新元素,例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值