出版者的话中文版序译者序前言第1章 基础知识 11 1 引言 11 2 程序 11 3 Hello,World! 21 4 函数 31 5 类型、变量和算术运算 51 6 作用域和生命周期 71 7 常量 81 8 指针、数组和引用 91 9
教而至简,不亦乐乎。——西塞罗现在的C++仿佛进化成了一种新的语言。与C++98相比,C++11更易于我们清晰、简洁、直观地表达思想。而且编译器可以更好地检查程序中的错误,程序的运行速度也提高了。就像其他任何一
C++是一门经典的程序设计语言。Bjarne Stroustrup是C++的设计者、最初的实现者和C++ ISO标准的主要制定者。本书是Bjarne Stroustrup推出的一本介绍C++的有趣的新书。与作者的其他著作相比,本书有三个特点。一
A Tour of C++Pune, India, January 14, 2015Dear Chinese reader,C++ is a language that is used world-wide and for an astounding range of application areas It is a langua
文艺复兴以来,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势;也正是这样的优势,使美国在信息技术发展的六十多年间名家辈出、独领风骚。在商业化的进程中,美国
本书作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的主要特性呈现给读者,并给出
C++作为一种大型语言,为更大的设计空间开辟了道路。本章我们描述了一组基本设计规则和指南,在实践中已经证明这些规则和指南是有用的。主要设计规则是绝对不能违反的。即使少量地违背主要设计规则,也可能危及大
维护一个大型系统时,以持续一致的、客观可验证的方式,将数据成员、类型、常量名字和其他标示符的名字区分开来,显然是好事。1 4 1节介绍了一些命名规则,在这里我们用三个设计规则和两个指南精炼地强调标识符的
本书中的例子并不能成为产品代码充分注释的典范(否则,这书就不是一本,而是三本了)。但是,注释,尤其是接口中的注释,是开发过程中的一个重要组成部分。将接口记录成文档,以供其他开发者使用;除接口的设计
现实并不总是美好的,下面就是一个例子。理论上讲,唯一的内部包含卫哨就足够了。但是,对于大型项目而言,若不做进一步的考虑,成本可能会很大。一个精心设计的系统由多层抽象构成。只要可能,我们总是希望先创
即使我们遵循了上面的建议,头文件的文件作用域中只出现类、结构体、联合体和内联函数的定义,如果相同的头文件在一个编译单元中被包含两次,仍然会有问题。如图2-5所示,这个问题可能出现在一个简单的包含图中。
头文件的文件作用域中声明的名字,可能潜在地与整个系统中任何其他文件作用域中的名字冲突。即使在一个 c文件的文件作用域中声明为带有内部链接的名字也不能保证一定不与 h文件的文件作用域名字冲突。主要设计规
在C++中基本上不需要宏。宏对包含卫哨(guard)是有用的(参见2 4节),极少情况下,宏在一个 c文件中带来的好处大于弊端(用于为可移植性或调试实现条件编译时,最为显著)。在一般情况下,预处理宏对于软件产品
枚举类型、typedef和(默认的)文件作用域常量数据都有内部链接。人们经常在头文件的文件作用域内声明常量、枚举或typedef,这是错误的。主要设计规则避免在 h文件的文件作用域内使用枚举、typedef和常量数据。因
自由函数也会对全局名字空间形成威胁,尤其是参数签名中不包含任何用户定义类型时。如果一个自由函数在一个 h文件中定义为带有内部链接或者在一个 c文件中定义为带有外部链接,那么在程序集成过程中自由函数可能
有人说全局变量就像癌症一样:你不能够和它们生活在一起,但是一旦建立,通常是无法删除的。在一个新的C++项目中,我们总是可以避免,且无需使用外部全局变量。对于这个规则,例外的情况可能出现在用全局变量通信
即使是对于中等规模的项目来说,将两名及以上开发者各自独立开发的部件集成到一个程序中时,都会有命名冲突的危险。问题的严重性会随着系统规模的扩大激增。当冲突由第三方提供的集成软件引起时,情况会加倍恶化
封装这个术语用来描述在过程接口后面隐藏实现细节的概念。类似的术语有信息隐藏或数据隐藏。直接访问一个类的数据成员就违反了封装原则。主要设计规则保持数据成员私有。请看图2-1中类Rectangle的定义。Rectangl
精美艺术的美感不仅来源于创造,也来源于规范。编程也是如此。C++是一种大型语言,有充分的空间进行创造。但是,由于设计空间太大,如果没有规范——也就是说设计结构上没有一些适当的约束——大型项目很容易变得
本章将适当地介绍一些基本设计规则,在实践中已经证明这些设计规则是非常有用的,并将作为本书后面围绕更高级规则进行论述的框架。这些基本规则适用于基本实践,例如,限制成员数据访问和减少全局名字空间中的标