Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

3.9 类型安全

每个对象在定义时被分配一个类型。对于一个程序或程序的一个部分,如果使用的对象符合它们规定的类型,那么它们是类型安全的。不幸的是,有些执行的操作是类型不安全的。例如,在一个变量没有初始化之前使用它,被认为是类型不安全的:

当没有初始化的x被使用时,有的实现甚至可以给出一个硬件错误。永远记住初始化你的变量!这个规则的例外非常少,例如我们立即将一个变量作为输入操作的目标,但是记住初始化变量是一个好习惯,它会为我们减少很多的麻烦。

完全的类型安全是理想的,因此它是语言的一般性规则。不幸的是,C++编译器不能保证完全的类型安全,但是通过良好的代码训练和运行检查,我们可以避免违反类型安全。理想情况是绝不使用编译器不能保证类型安全的语言特性:静态类型安全。不幸的是,它对于大多数有趣的编程应用过于严格。很明显低效的做法是,编译器隐式地生成代码来检查是否违反类型安全并全部标记它们,C++并不支持这种方式。当我们决定做(类型)不安全的事时,我们必须自己做某些检查工作。当在本书中遇到这种情况时,我们将会指明。

类型安全的思想在编写代码时非常重要。这是我们在这本书的靠前章节花费时间介绍它的原因。请注意陷阱并避开它们。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python编程入门与实战

Python编程入门与实战

Posts & Telecom Press, Fabrizio Romano

Publisher Resources

ISBN: 9787111562252