第3章 类型转换与cv限定符

在第1章中,探讨了内存、对象和指针的本质 —— 要掌控内存管理机制,理解这些基础概念至关重要。第2章则研究了一些底层结构:若使用不当可能引发问题,但在特定场景下,理解这些结构对掌控程序内存管理不可或缺。

第2章末尾,探讨了类型双关(type punning)的实现方式 —— 这种颠覆类型系统的技术,包含某些被误认为有效实则不然的方法。C++提供了一系列受控且显式的方式与类型系统交互,告知编译器应将表达式的类型视作与源码推断不同的形态。这些工具即类型转换(或称强制转换),正是本章的主题。

我们将首先解析强制转换的广义概念,区分执行转换的各种根本原因,并说明为何C风格转换在C++程序中大多不适用(除特定情况外)。接着快速浏览C++系统中与安全性相关的cv限定符(cv-qualifications),探讨其对代码健壮性和整体质量的影响。随后详细考察6种C++强制转换方式,最后重新审视C风格的转换,阐明其仍适用的有限场景。

本章将学习以下内容: