《C++编程调试秘笈》导读

简介:


5a0c669b854e451f9e164a75f73028070f2f0759

前言

C++编程调试秘笈
敏锐的读者可能会根据本书的英文书名《Safe C++》推断出C++编程语言多少是有点儿不安全的。这确实是很灵敏的感觉!并且非常正确。C++语言可能导致程序员出现所有类型的错误,例如访问一个动态分配的数组边界之外的内存,或者从那些从未初始化过的内存进行读取,或者分配了内存但忘了销毁它。简而言之,程序员在使用C++进行编程的时候,会有很大的几率搬起石头砸自己的脚。很可能一切都非常顺利,程序却突然崩溃,或者产生不可理喻的结果,或者出现了计算机术语中称为“不可预料的行为”。因此,从这层意义上说,C++语言在本质上是不安全的。

本书讨论了程序员在C++编程中所犯的一些最为常见的错误,并提供了避免这些错误的方法。在过去的岁月里,C++社区积累了许多优秀的编程实践。在编写本书时,作者收集了其中的一些实践,并对它们进行了稍微的修改,另外增加了作者的一些实践。作者希望这些作为缺陷捕捉策略的规则集能够达到事半功倍的效果。

不可否认的真相是,任何比“Hello, World”复杂得多的程序都可能包含一些错误,或可以充满感情色彩地称之为缺陷(bug)1。编程的一个很大课题是怎样减少缺陷的数量,同时又不至于明显延缓开发进程使之陷入停顿。为此,我们需要回答下面这个问题:应该由谁来捕捉这些缺陷?

第1章 C++的缺陷来自哪里

第2章 什么时候捕捉缺陷

**2.1 为什么编译器是捕捉缺陷的最好场合
2.2 怎样用编译器捕捉缺陷
2.3 处理类型的正确方式**

相关文章
|
23天前
|
安全 算法 C++
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
46 3
|
24天前
|
安全 算法 编译器
【C++ 泛型编程 进阶篇】深入探究C++模板参数推导:从基础到高级
【C++ 泛型编程 进阶篇】深入探究C++模板参数推导:从基础到高级
240 3
|
24天前
|
存储 算法 编译器
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
234 0
|
24天前
|
算法 编译器 数据库
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
243 0
|
24天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
65 0
|
24天前
|
设计模式 程序员 C++
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
241 2
|
2天前
|
编译器 C++
C++编程之美:探索初始化之源、静态之恒、友情之桥与匿名之韵
C++编程之美:探索初始化之源、静态之恒、友情之桥与匿名之韵
15 0
|
23天前
|
存储 移动开发 安全
【C/C++ 口语】C++ 编程常见接口发音一览(不断更新)
【C/C++ 口语】C++ 编程常见接口发音一览(不断更新)
21 0
|
24天前
|
算法 编译器 C++
【C++ 模板编程 基础知识】C++ 模板类部分特例化的参数顺序
【C++ 模板编程 基础知识】C++ 模板类部分特例化的参数顺序
21 0
|
24天前
|
机器学习/深度学习 人工智能 算法
【C++ 职业方向】C++ 职业方向探索:工作职责、编程技能与MBTI人格匹配
【C++ 职业方向】C++ 职业方向探索:工作职责、编程技能与MBTI人格匹配
157 1