C++11程序設計(第2版 英文版)

C++11程序設計(第2版 英文版) pdf epub mobi txt 电子书 下载 2025

[美] Paul Deitel(保羅·戴特爾),[美] Harvey Deitel(哈維·戴特爾) 著
圖書標籤:
  • C++
  • C++11
  • Programming
  • Computer Science
  • Software Development
  • Second Edition
  • English
  • Books
  • Technical Books
  • Coding
  • Algorithms
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121272646
版次:2
商品编码:11901447
品牌:Broadview
包装:平装
丛书名: 原味精品书系
开本:16开
出版时间:2016-03-01
用纸:胶版纸
页数:848
正文语种:英文

具体描述

産品特色

內容簡介

  《C++11程序設計(第2版)英文版》利用活代碼深入研究C++11 和C++ 標準庫。內容包括C++11 的新特性,基於模闆的標準庫容器、迭代器和算法,C++ 標準庫字符串,C++ 標準庫數組,構造重要類,麵嚮對象編程的案例研究,異常處理,等等。本書示例豐富,包含瞭從計算機科學、商業、模擬、遊戲和其他主題中挑選齣來的各種示例程序,並在三個具有工業強度的C++11 編譯器上對代碼進行瞭測試;書中配有大量的插圖,包括圖錶、綫條圖、UML 圖、程序和程序輸齣。
  《C++11程序設計(第2版)英文版》適閤具有一定高級語言編程背景的程序員閱讀。

作者簡介

  Paul Deitel,Deitel & Associates有限公司的CEO兼CTO,畢業於麻省理工學院,主修信息技術。通過Deitel & Associate有限公司,他已經為行業、政府機關和軍隊客戶提供瞭數百節編程課程,這些客戶包括思科、IBM、西門子、Sun Microsystems、戴爾、Fidelity、肯尼迪航天中心、美國國傢強風暴實驗室、白沙導彈試驗場、Rogue Wave Software、波音公司、SunGard Higher Education、北電網絡公司、彪馬、iRobot、Invensys等。他和本書的閤著者Harvey Deitel博士是暢銷全球的編程語言教材、專業書籍和視頻的作者。

  Harvey Deitel博士,Deitel & Associates有限公司的董事長和首席戰略官,在計算機領域中擁有五十多年的經驗。Deitel博士獲得瞭麻省理工學院電子工程(學習計算)的學士和碩士學位,並獲得瞭波士頓大學的數學博士學位(學習計算機科學)。在20世紀60年代,通過先進的計算機技術和計算機應用公司,他成為瞭創建各種IBM操作係統的團隊中的一員。在20世紀70年代,他創建瞭商業操作係統。他擁有豐富的大學教學經驗,在1991年與兒子Paul Deitel創辦Deitel & Associates有限公司之前,他是波士頓大學計算機科學係的主任,並獲得瞭終身任職權。Deitel的齣版物獲得瞭國際上的認可,並被翻譯為繁體中文、簡體中文、韓語、日語、德語、俄語、西班牙語、法語、波蘭語、意大利語、葡萄牙語、希臘語、烏爾都語和土耳其語。Deitel博士為很多大公司、學術研究機構、政府機關和軍方提供瞭數百場專業編程講座。

目錄

前言
1 Introduction
1.1 Introduction
1.2 C++
1.3 Object Technology
1.4 Typical C++ Development Environment
1.5 Test-Driving a C++ Application
1.6 Operating Systems
1.6.1 Windows―A Proprietary Operating System
1.6.2 Linux―An Open-Source Operating System
1.6.3 Apple’s OS X; Apple’s iOS for iPhone?, iPad? and iPod Touch? Devices
1.6.4 Google’s Android
1.7 C++11 and the Open Source Boost Libraries
1.8 Web Resources
2 Introduction to C++ Programming, Input/Output and Operators
2.1 Introduction
2.2 First Program in C++: Printing a Line of Text
2.3 Modifying Our First C++ Program
2.4 Another C++ Program: Adding Integers
2.5 Arithmetic
2.6 Decision Making: Equality and Relational Operators
2.7 Wrap-Up
3 Introduction to Classes, Objects and Strings
3.1 Introduction
3.2 Defining a Class with a Member Function
3.3 Defining a Member Function with a Parameter
3.4 Data Members, set Member Functions and get Member Functions
3.5 Initializing Objects with Constructors
3.6 Placing a Class in a Separate File for Reusability
3.7 Separating Interface from Implementation
3.8 Validating Data with set Functions
3.9 Wrap-Up
4 Control Statements: Part 1; Assignment, ++ and -- Operators
4.1 Introduction
4.2 Control Structures
4.3 if Selection Statement
4.4 if … else Double-Selection Statement
4.5 while Repetition Statement
4.6 Counter-Controlled Repetition
4.7 Sentinel-Controlled Repetition
4.8 Nested Control Statements
4.9 Assignment Operators
4.10 Increment and Decrement Operators
4.11 Wrap-Up
5 Control Statements: Part 2; Logical Operators
5.1 Introduction
5.2 Essentials of Counter-Controlled Repetition
5.3 for Repetition Statement
5.4 Examples Using the for Statement
5.5 do … while Repetition Statement
5.6 switch Multiple-Selection Statement
5.7 break and continue Statements
5.8 Logical Operators
5.9 Confusing the Equality ( == ) and Assignment ( = ) Operators
5.10 Wrap-Up
6 Functions and an Introduction to Recursion
6.1 Introduction
6.2 Math Library Functions
6.3 Function Definitions with Multiple Parameters
6.4 Function Prototypes and Argument Coercion
6.5 C++ Standard Library Headers
6.6 Case Study: Random Number Generation
6.7 Case Study: Game of Chance; Introducing enum
6.8 C++11 Random Numbers
6.9 Storage Classes and Storage Duration
6.10 Scope Rules
6.11 Function Call Stack and Activation Records
6.12 Functions with Empty Parameter Lists
6.13 Inline Functions
6.14 References and Reference Parameters
6.15 Default Arguments
6.16 Unary Scope Resolution Operator
6.17 Function Overloading
6.18 Function Templates
6.19 Recursion
6.20 Example Using Recursion: Fibonacci Series
6.21 Recursion vs. Iteration
6.22 Wrap-Up
7 Class Templates array and vector ;
Catching Exceptions
7.1 Introduction
7.2 array s
7.3 Declaring array s
7.4 Examples Using array s
7.4.1 Declaring an array and Using a Loop to Initialize the array ’s Elements
7.4.2 Initializing an array in a Declaration with an Initializer List
7.4.3 Specifying an array ’s Size with a Constant Variable and Setting array Elements with Calculations
7.4.4 Summing the Elements of an array
7.4.5 Using Bar Charts to Display array Data Graphically
7.4.6 Using the Elements of an array as Counters
7.4.7 Using array s to Summarize Survey Results
7.4.8 Static Local array s and Automatic Local array s
7.5 Range-Based for Statement
7.6 Case Study: Class GradeBook Using an array to Store Grades
7.7 Sorting and Searching array s
7.8 Multidimensional array s
7.9 Case Study: Class GradeBook Using a Two-Dimensional array
7.10 Introduction to C++ Standard Library Class Template vector
7.11 Wrap-Up
8 Pointers
8.1 Introduction
8.2 Pointer Variable Declarations and Initialization
8.3 Pointer Operators
8.4 Pass-by-Reference with Pointers
8.5 Built-In Arrays
8.6 Using const with Pointers
8.6.1 Nonconstant Pointer to Nonconstant Data
8.6.2 Nonconstant Pointer to Constant Data
8.6.3 Constant Pointer to Nonconstant Data
8.6.4 Constant Pointer to Constant Data
8.7 sizeof Operator
8.8 Pointer Expressions and Pointer Arithmetic
8.9 Relationship Between Pointers and Built-In Arrays
8.10 Pointer-Based Strings
8.11 Wrap-Up
9 Classes: A Deeper Look; Throwing Exceptions
9.1 Introduction
9.2 Time Class Case Study
9.3 Class Scope and Accessing Class Members
9.4 Access Functions and Utility Functions
9.5 Time Class Case Study: Constructors with Default Arguments
9.6 Destructors
9.7 When Constructors and Destructors Are Called
9.8 Time Class Case Study: A Subtle Trap―Returning a Reference or a Pointer to a private Data Member
9.9 Default Memberwise Assignment
9.10 const Objects and const Member Functions
9.11 Composition: Objects as Members of Classes
9.12 friend Functions and friend Classes
9.13 Using the this Pointer
9.14 static Class Members
9.15 Wrap-Up
10 Operator Overloading; Class string
10.1 Introduction
10.2 Using the Overloaded Operators of Standard Library Class string
10.3 Fundamentals of Operator Overloading
10.4 Overloading Binary Operators
10.5 Overloading the Binary Stream Insertion and Stream Extraction Operators
10.6 Overloading Unary Operators
10.7 Overloading the Unary Prefix and Postfix ++ and -- Operators
10.8 Case Study: A Date Class
10.9 Dynamic Memory Management
10.10 Case Study: Array Class
10.10.1 Using the Array Class
10.10.2 Array Class Definition
10.11 Operators as Member vs. Non-Member Functions
10.12 Converting Between Types
10.13 explicit Constructors and Conversion Operators
10.14 Overloading the Function Call Operator ()
10.15 Wrap-Up
11 Object-Oriented Programming: Inheritance
11.1 Introduction
11.2 Base Classes and Derived Classes
11.3 Relationship between Base and Derived Classes
11.3.1 Creating and Using a CommissionEmployee Class
11.3.2 Creating a BasePlusCommissionEmployee Class Without Using Inheritance
11.3.3 Creating a CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy
11.3.4 CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy Using protected Data
11.3.5 CommissionEmployee ? BasePlusCommissionEmployee Inheritance Hierarchy Using private Data
11.4 Constructors and Destructors in Derived Classes
11.5 public , protected and private Inheritance
11.6 Software Engineering with Inheritance
11.7 Wrap-Up
12 Object-Oriented Programming: Polymorphism
12.1 Introduction
12.2 Introduction to Polymorphism: Polymorphic Video Game
12.3 Relationships Among Objects in an Inheritance Hierarchy
12.3.1 Invoking Base-Class Functions from Derived-Class Objects
12.3.2 Aiming Derived-Class Pointers at Base-Class Objects
12.3.3 Derived-Class Member-Function Calls via Base-Class Pointers
12.3.4 Virtual Functions and Virtual Destructors
12.4 Type Fields and switch Statements
12.5 Abstract Classes and Pure virtual Functions
12.6 Case Study: Payroll System Using Polymorphism
12.6.1 Creating Abstract Base Class Employee
12.6.2 Creating Concrete Derived Class SalariedEmployee
12.6.3 Creating Concrete Derived Class CommissionEmployee
12.6.4 Creating Indirect Concrete Derived Class BasePlusCommissionEmployee
12.6.5 Demonstrating Polymorphic Processing
12.7 (Optional) Polymorphism, Virtual Functions and Dynamic Binding“Under the Hood”
12.8 Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, dynamic_cast , typeid and
type_info
12.9 Wrap-Up
13 Stream Input/Output: A Deeper Look
13.1 Introduction
13.2 Streams
13.2.1 Classic Streams vs. Standard Streams
13.2.2 iostream Library Headers
13.2.3 Stream Input/Output Classes and Objects
13.3 Stream Output
13.3.1 Output of char * Variables
13.3.2 Character Output Using Member Function put
13.4 Stream Input
13.4.1 get and getline Member Functions
13.4.2 istream Member Functions peek , putback and ignore
13.4.3 Type-Safe I/O
13.5 Unformatted I/O Using read , write and gcount
13.6 Introduction to Stream Manipulators
13.6.1 Integral Stream Base: dec , oct , hex and setbase
13.6.2 Floating-Point Precision ( precision , setprecision )
13.6.3 Field Width ( width , setw )
13.6.4 User-Defined Output Stream Manipulators
13.7 Stream Format States and Stream Manipulators
13.7.1 Trailing Zeros and Decimal Points ( showpoint )
13.7.2 Justification ( left , right and internal )
13.7.3 Padding ( fill , setfill )
13.7.4 Integral Stream Base ( dec , oct , hex , showbase )
13.7.5 Floating-Point Numbers; Scientific and Fixed Notation( scientific , fixed )
13.7.6 Uppercase/Lowercase Control ( uppercase )
13.7.7 Specifying Boolean Format ( boolalpha )
13.7.8 Setting and Resetting the Format State via Member Function flags
13.8 Stream Error States
13.9 Tying an Output Stream to an Input Stream
13.10 Wrap-Up
14 File Processing
14.1 Introduction
14.2 Files and Streams
14.3 Creating a Sequential File
14.4 Reading Data from a Sequential File
14.5 Updating Sequential Files
14.6 Random-Access Files
14.7 Creating a Random-Access File
14.8 Writing Data Randomly to a Random-Access File
14.9 Reading from a Random-Access File Sequentially
14.10 Case Study: A Transaction-Processing Program
14.11 Object Serialization
14.12 Wrap-Up
15 Standard Library Containers and Iterators
15.1 Introduction
15.2 Introduction to Containers
15.3 Introduction to Iterators
15.4 Introduction to Algorithms
15.5 Sequence Containers
15.5.1 vector Sequence Container
15.5.2 list Sequence Container
15.5.3 deque Sequence Container
15.6 Associative Containers
15.6.1 multiset Associative Container
15.6.2 set Associative Container
15.6.3 multimap Associative Container
15.6.4 map Associative Container
15.7 Container Adapters
15.7.1 stack Adapter
15.7.2 queue Adapter
15.7.3 priority_queue Adapter
15.8 Class bitset
15.9 Wrap-Up
16 Standard Library Algorithms
16.1 Introduction
16.2 Minimum Iterator Requirements
16.3 Algorithms
16.3.1 fill , fill_n , generate and generate_n
16.3.2 equal , mismatch and lexicographical_compare
16.3.3 remove , remove_if , remove_copy and remove_copy_if
16.3.4 replace , replace_if , replace_copy and replace_copy_if
16.3.5 Mathematical Algorithms
16.3.6 Basic Searching and Sorting Algorithms
16.3.7 swap , iter_swap and swap_ranges
16.3.8 copy_backward , merge , unique and reverse
16.3.9 inplace_merge , unique_copy and reverse_copy
16.3.10 Set Operations
16.3.11 lower_bound , upper_bound and equal_range
16.3.12 Heapsort
16.3.13 min , max , minmax and minmax_element
16.4 Function Objects
16.5 Lambda Expressions
16.6 Standard Library Algorithm Summary
16.7 Wrap-Up
17 Exception Handling: A Deeper Look
17.1 Introduction
17.2 Example: Handling an Attempt to Divide by Zero
17.3 Rethrowing an Exception
17.4 Stack Unwinding
17.5 When to Use Exception Handling
17.6 Constructors, Destructors and Exception Handling
17.7 Exceptions and Inheritance
17.8 Processing new Failures
17.9 Class unique_ptr and Dynamic Memory Allocation
17.10 Standard Library Exception Hierarchy
17.11 Wrap-Up
18 Introduction to Custom Templates
18.1 Introduction
18.2 Class Templates
18.3 Function Template to Manipulate a Class-Template Specialization Object
18.4 Nontype Parameters
18.5 Default Arguments for Template Type Parameters
18.6 Overloading Function Templates
18.7 Wrap-Up
19 Class string and String Stream Processing: A Deeper Look
19.1 Introduction
19.2 string Assignment and Concatenation
19.3 Comparing string s
19.4 Substrings
19.5 Swapping string s
19.6 string Characteristics
19.7 Finding Substrings and Characters in a string
19.8 Replacing Characters in a string
19.9 Inserting Characters into a string
19.10 Conversion to Pointer-Based char * Strings
19.11 Iterators
19.12 String Stream Processing
19.13 C++11 Numeric Conversion Functions
19.14 Wrap-Up
20 Bits, Characters, C Strings and struct s
20.1 Introduction
20.2 Structure Definitions
20.3 typedef
20.4 Example: Card Shuffling and Dealing Simulation
20.5 Bitwise Operators
20.6 Bit Fields
20.7 Character-Handling Library
20.8 C String-Manipulation Functions
20.9 C String-Conversion Functions
20.10 Search Functions of the C String-Handling Library
20.11 Memory Functions of the C String-Handling Library
20.12 Wrap-Up
21 Other Topics
21.1 Introduction
21.2 const_cast Operator
21.3 mutable Class Members
21.4 namespace s
21.5 Operator Keywords
21.6 Pointers to Class Members ( .* and ->* )
21.7 Multiple Inheritance
21.8 Multiple Inheritance and virtual Base Classes
21.9 Wrap-Up
22 ATM Case Study, Part 1:Object-Oriented Design with the UML
22.1 Introduction
22.2 Introduction to Object-Oriented Analysis and Design
22.3 Examining the ATM Requirements Document
22.4 Identifying the Classes in the ATM Requirements Document
22.5 Identifying Class Attributes
22.6 Identifying Objects’ States and Activities
22.7 Identifying Class Operations
22.8 Indicating Collaboration Among Objects
22.9 Wrap-Up
23 ATM Case Study, Part 2:Implementing an Object-Oriented Design
23.1 Introduction
23.2 Starting to Program the Classes of the ATM System
23.3 Incorporating Inheritance into the ATM System
23.4 ATM Case Study Implementation
23.4.1 Class ATM
23.4.2 Class Screen
23.4.3 Class Keypad
23.4.4 Class CashDispenser
23.4.5 Class DepositSlot
23.4.6 Class Account
23.4.7 Class BankDatabase
23.4.8 Class Transaction
23.4.9 Class BalanceInquiry
23.4.10 Class Withdrawal
23.4.11 Class Deposit
23.4.12 Test Program ATMCaseStudy.cpp
23.5 Wrap-Up
A Operator Precedence and Associativity
B ASCII Character Set
C Fundamental Types
D Number Systems
D.1 Introduction
D.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
D.3 Converting Octal and Hexadecimal Numbers to Binary Numbers
D.4 Converting from Binary, Octal or Hexadecimal to Decimal
D.5 Converting from Decimal to Binary, Octal or Hexadecimal
D.6 Negative Binary Numbers: Two’s Complement Notation
E Preprocessor
E.1 Introduction
E.2 #include Preprocessing Directive
E.3 #define Preprocessing Directive: Symbolic Constants
E.4 #define Preprocessing Directive: Macros
E.5 Conditional Compilation
E.6 #error and #pragma Preprocessing Directives
E.7 Operators # and ##
E.8 Predefined Symbolic Constants
E.9 Assertions
E.10 Wrap-Up
Index
綫上章節及附錄
第 24 章及附錄 F~K 為 PDF 文檔

前言/序言

  “語言的首要價值是清晰……”
  ——Galen
  歡迎閱讀本書。本書會嚮軟件開發人員介紹最先進的計算技術。
  我們專注於軟件工程的最佳實踐。本書沿用瞭Deitel特色的“程序實況解說”風格——用完整的可運行程序(而不是代碼片段)來解釋相關概念。每個完整的代碼示例都配有生動的示例。所有的源代碼都可以從下麵的網址下載:
  如果你在閱讀本書時遇到任何睏難,請發送郵件到:
  我們會及時迴復你。要瞭解本書的最新信息,加入我們的Facebook社區、Twitter社區、Google+社區和LinkedIn社區,你還可以訂閱Deitel Buzz Online電子郵件新聞簡報。
  本書特色
  本書的主要特色如下所述。
  C++11標準
  2011年發布的C++11新標準是我們寫這本書的動機。我們使用標有“11”的圖標來錶示在本書中提到的每個C++11新特性,如本頁的空白處所示。這一版包含的一些C++11特性如下。
  符閤C++11新標準。廣泛地覆蓋瞭C++11的新特性。
  在3個具有工業強度的C++11編譯器上對代碼進行瞭測試。我們在GNU C++ 4.7、Microsoft Visual C++ 2012和Apple Xcode 4.5的LLVM上對代碼示例進行瞭測試。
  智能指針。智能指針可以幫助你避免動態由於提供瞭內置指針無法實現的功能而導緻的內存管理錯誤。我們將在第17章討論unique_ptr,在第24章討論shared_ptr和weak_ptr。
  更早地介紹基於模闆的標準庫容器、迭代器和算法,並用C++11新特性對這些內容進行瞭擴充。我們將第1版中位於第20章的標準庫容器、迭代器和算法的處理移到瞭第15章和第16章,並且使用C++11新特性對這些內容進行瞭擴充。你需要的絕大多數數據結構都可以通過重用這些標準庫來實現。
  在綫閱讀第24章。我們將在這一章介紹C++11的其他主題。C++11新標準是在2011年發布的,但並非所有的C++編譯器都完全支持這些特性。在我們編寫本書時,如果某個C++特性已經在這3個主要的編譯器中實現瞭,我們就用文本和代碼實例來介紹該特性。如果這3個編譯器都沒有實現該特性,我們就用粗斜體標題和對這個特性的簡短說明來介紹它。當這些特性被編譯器實現時,我們就會在第24章對這些簡短說明進行擴充。之所以將本章放在網上,是因為這樣做我們就可以動態更新其內容。本章包含對正則錶達式、shared_ptr和weak_ptr智能指針、移動語義等的討論。你可以通過以下網址訪問本章:
  R隨機數生成、模擬和遊戲。為瞭讓程序更安全(參見下一頁的“C++安全編程”一節),我們會在本書中討論C++11的非確定性隨機數生成機製。
  麵嚮對象程序設計
  提早介紹對象。我們在本書的第1章就介紹瞭對象技術的基本概念和術語,在第3章將會帶你開發一個自定義的C++類和對象。
  C++標準庫字符串。C++提供瞭兩種類型的字符串——字符串類對象(從第3章開始使用)和C字符串(來自C語言)。我們用C++字符串類的實例替換瞭大多數C字符串,以便讓程序變得更健壯,並消除C字符串帶來的很多安全問題。我們稍後會在本書中討論C字符串,以便讓你能夠使用工業上的遺留代碼。在新的開發項目中,你應該支持字符串對象。
  C++標準庫數組。我們在本書中使用的主要是標準庫的數組類模闆,而不是內置的、C風格的、基於指針的數組。但我們還是會介紹內置數組,因為它們仍然會被用在C++中,而且瞭解它纔能夠閱讀遺留代碼。C++提供瞭三種類型的數組——類模闆數組、vector(從第7章開始使用),以及C風格的、基於指針的數組(在第8章介紹)。我們在本書中會酌情使用模闆數組和類模闆vector(偶爾),而不是C數組。在新的開發項目中,你應該支持類模闆數組和vector。
  構造重要類。本書的一個主要目標是讓你構造重要的、可重用的C++類。在第10章的案例研究中,你將創建自己的自定義Array類。第10章以類模闆字符串的測試驅動開始,這樣在你使用重載操作符實現自己的自定義類前,可以先看到如何使用操作符重載。
  麵嚮對象編程的案例研究。我們提供瞭跨越多個章節並涵蓋瞭軟件開發生命周期的案例研究。這些案例研究包括第3~7章的GradeBook類,第9章的Time類和第11章、第12章的Employee類。第12章用詳細的圖錶說明瞭C++如何“在幕後”實現多態、虛函數和動態綁定。
  可選案例研究:使用UML創建一個ATM的麵嚮對象設計和C++實現。UML(統一建模語言,Unified Modeling Language)是為麵嚮對象係統建模的行業標準圖形化語言。我們在本書的前幾章就介紹瞭UML。第22章和第23章包含使用UML來進行麵嚮對象設計的可選案例研究。我們設計並實現瞭一個簡單的自動取款機(ATM)的軟件。我們分析瞭一個指定如何構建係統的典型需求文檔。我們確定瞭實現該係統所需要的類、這些類需要擁有的屬性和這些類需要錶現齣的行為,我們還指定瞭這些類必須如何交互纔能滿足係統需求。我們根據設計産生瞭一個完整的C++實現。讀者經常反饋說這個案例研究“將所有內容都聯係起來”,並讓他們對麵嚮對象有瞭更深入的瞭解。
  異常處理。在本書的前幾章就包含瞭基本的異常處理。你可以從第17章來瞭解異常處理的更多內容。
  主要的編程範式。我們在本書中討論瞭麵嚮對象編程和泛型編程。
  教學特色
  示例。本書包含瞭從計算機科學、商業、模擬、遊戲和其他主題中挑選齣來的各種示例程序。
  插圖和圖。本書包含瞭大量的圖錶、綫條圖、UML圖、程序和程序輸齣。
  其他特色
  指針。本書詳細地介紹瞭內置指針,以及內置指針、C字符串和內置數組之間的密切關係。
  調試器附錄。本書包含瞭3個調試器附錄——附錄H,講述Visual Studio調試器的使用;附錄I,講述GNU C++調試器的使用;附錄J,講述Xcode調試器的使用。
  C++安全編程
  很難創建齣可以抵抗病毒、蠕蟲等其他“惡意軟件”攻擊的、具有工業強度的係統。如今,通過互聯網,這類攻擊瞬間就可以對全球範圍造成影響。從開發周期的一開始就在軟件中加入安全性,可以大大減少安全風險。
  人們創建瞭CERT Coordination Center來分析和及時應對攻擊。CERT(計算機安全應急響應小組,Computer Emergency Response Team)是一個政府資助的組織,位於卡內基梅隆大學軟件工程研究所。CERT會發布和推廣各種流行編程語言的安全編碼標準,幫助軟件開發人員實現具有工業強度的係統,從而避免會造成開放式係統受到攻擊的編程實踐。
  我們要感謝Robert C. Seacord,他是CERT的安全編程管理員和卡內基梅隆大學計算機科學係的副教授。Seacord先生是C How to Program, 7e一書的技術評審,他從安全角度審查瞭這本書中的C語言程序,並建議我們遵守CERT C語言安全編程標準。
  本書也遵守CERT C++安全編碼標準指南(符閤書籍水平),你可以通過以下網址找到該指南:
  www.securecoding.cert.org
  我們很高興地發現,從20世紀90年代早期開始我們就在書籍中推薦瞭這些編程實踐。如果你要創建具有工業強度的C++係統,就一定不要錯過Secure Coding in C and C++, 2e(Robert Seacord,Addison-Wesley Professional齣版)。
  教學方法
  本書強調的是程序的清晰性,並專注於構建良好的軟件工程。
  程序實況解說。本書包含上百個“程序實況解說”示例——每個新概念都是在完整的可運行C++程序中提齣的,緊接著是顯示該程序輸入和輸齣的一個或者多個實際執行。
  語法著色。為瞭增加可讀性,我們為代碼添加瞭語法陰影,這與大多數IDE和代碼編輯器給代碼的語法添加顔色是類似的。我們采用的代碼的著色約定是:
  注釋用常規字體錶示
  關鍵字用粗黑字體錶示
  常量和字麵值用比關鍵字稍淺一點的粗灰字來錶示
  所有的其他代碼以黑體錶示
  代碼高亮顯示。本書在每個源代碼程序的關鍵代碼段都放置瞭一個灰色的矩形框。
  使用字體突齣顯示。為瞭便於參考,我們用粗體錶示每個定義性齣現的關鍵概念和索引的頁麵引用,用加粗的Helvetica字體來強調屏幕組件(例如,File菜單),用Lucida字體來強調C語言程序文本(例如,int x = 5;)。
  網頁存取。所有的源代碼示例都可以從以下網址下載:
  目標。每章都包含一個本章目標的列錶。
  編程技巧。我們提供瞭編程技巧來幫助你關注程序開發的重要方麵。這些技巧和實踐是我們在8年編程和企業培訓經驗中積纍的精華。最佳編程實踐
  最佳編程實踐讓讀者關注那些有助於産生更清晰、更易理解和維護程序的技術。
  常見編程錯誤
  指齣這些常見的編程錯誤可以降低讀者犯類似錯誤的可能性。
  錯誤預防技巧
  這些技巧包括揭露和刪除程序中bug的建議;大多數技巧描述的是如何預防將bug帶入C++程序中。
  性能技巧
  這些技巧強調的是如何讓程序運行得更快,或者盡量減少它們占用的內存。
  可移植性技巧
  可移植性技巧可以幫助你編寫能夠在各種平颱上運行的代碼。
  軟件工程意見
  軟件工程意見強調的是影響軟件係統(尤其是大型係統)構建的架構和設計問題。
  在綫章節和附錄
  下麵的章節和附錄可以在綫獲取。
  第24章,C++11的其他主題(C++11: Additional Features)。
  附錄F,C遺留代碼主題(C Legacy Code Topics)。
  附錄G,UML 2:其他圖錶類型(UML 2: Additional Diagram Types)。
  附錄H,Visual Studio調試器的使用(Using the Visual Studio Debugger)。
  附錄I,GNU C++調試器的使用(Using the GNU C++ Debugger)。
  附錄J,Xcode調試器的使用(Using the Xcode Debugger)。
  附錄K,對Mac OS X上C++程序的測試驅動(Test Driving a C++ Program on Mac OS X)。
  可以通過以下網址訪問在綫章節和附錄:
  www.informit.com/register
  你需要注冊一個InformIT賬號,並登錄。登錄後,你就能看到一個“Register a Product”框。輸入本書的ISBN(9780133439854)就可以訪問本書的在綫章節和附錄瞭。
  獲取本書使用的軟件
  本書的代碼示例是通過下麵的C++開發工具來編寫的:
  用於Windows桌麵的免費Visual Studio Express 2012,其中包含瞭Visual C++和其他Microsoft開發工具。它可以在Windows 7和Windows 8中運行,並可以從如下網址下載。
  www.microsoft.com/express
  GNU的免費GNU C++(gcc.gnu.org/install/binaries.html),其中大多數Linux係統都已經預先安裝瞭該編譯器,它還可以被安裝到Mac OS X和Windows係統中。
  Apple的免費Xcode,OS X用戶可以從Mac App Store中下載它。
  C++11基礎:LiveLessons視頻培訓産品的第I部分~第III部分
  “C++ 11基礎:LiveLessons視頻培訓産品的第I部分~第III部分”介紹瞭開始使用C++構建健壯的、強大的軟件時所需要知道的內容。它包含瞭二十多個小時與本書同步的專傢培訓。要瞭解關於Deitel LiveLesssons視頻産品的更多信息,請訪問
  www.deitel.com/livelessons
  或者可以通過deitel@deitel.com聯係我們。如果你已經訂閱瞭Safari Books Online(www.safaribooksonline.com),你還可以獲取我們的LiveLessons視頻。這些LiveLessons已於2013年夏季上綫。
  緻謝
  我們要感謝Deitel & Associates有限公司的Abbey Deitel和Barbara Deitel。他們為這個項目投入瞭大量時間。Abbey參與撰寫瞭本書的第1章和前言,她和Barbara仔細研究瞭C++11的新功能。
  我們有幸與Prentice Hall/Pearson的齣版專傢團隊共同完成該項目。我們要感謝培生科技齣版集團的主編Mark L. Taub給我們的指導和為此付齣的精力。我們要感謝Carole Snyder齣色地完成瞭招募優秀的C++社區成員來審稿的工作;感謝Chuti Prasertsith為本書設計瞭具有創造力和精確度的封麵——我們把自己對封麵的構想告訴他,而他準確地實現瞭它;感謝John Fuller齣色地完成瞭我們的Deitel開發人員係統圖書和LiveLessons視頻産品的齣版工作。
  審稿人員
  還要感謝本書審稿人員的付齣,他們提齣的建設性的批評意見幫助我們完成瞭本書的新版本。他們完成瞭對本書文本和程序的審查,並為提高本書的錶述方式提供瞭無數建議,他們是:Dean Michael Berris(榖歌,ISO C++委員會成員)、Danny Kaley(C++專傢,經過認證的係統分析師和C++標準委員會的前成員)、Linda M. Krause(艾姆赫斯特學院)、James P. McNellis(微軟公司)、Robert C.Seacord(SEI/CERT的安全編碼管理員、Secure Coding in C and C++一書的作者)、José Antonio González Seco(西班牙安達盧西亞議會議員)、Virginia Bailey(傑剋遜州立大學)、Thomas J. Borrelli(羅徹斯特理工學院)、Ed Brey(科勒有限公司)、Chris Cox(Adobe係統有限公司)、Gregory Dai(eBay)、Peter J. DePasquale(美國新澤西學院)、John Dibling(SpryWare)、Susan Gauch(阿肯色大學)、Doug Gregor(蘋果公司)、Jack Hagemeister(華盛頓州立大學)、Williams M. Higdon(美國印第安納大學)、Anne B. Horton(Lockheed Martin公司)、Terrell Hull(Logicalis集成解決方案)、Ed James-Beckham(Borland公司)、Wing-Ning Li(阿肯色大學)、Dean Mathias(猶他州立大學)、Robert A. McLain(潮水社區學院)、Robert Myers(佛羅裏達州立大學)、Gavin Osborne(薩斯喀徹溫省應用科技學院)、Amar Raheja(加利福尼亞大學波莫納分校)、April Reagan(微軟)、Raymond Stephenson(微軟)、Dave Topham(美國奧龍尼學院)、Anthony Williams(作傢和C++標準委員會成員)和Chad Willwerth(華盛頓大學塔科馬分校)。
  真誠地歡迎讀者提齣可以提高本書質量的意見、批評、更正和建議,請將它們發送
  我們會及時迴復你。我們在編寫本書時享受到瞭很多樂趣。希望你也能在本書的閱讀過程中得到樂趣。
  Paul Deitel
  Harvey Deitel


用户评价

评分

评分

很好很好很好很好很好很好

评分

bsbsnsnnsmsskskjsjhj

评分

呵呵哈哈哈姐姐

评分

bsbsnsnnsmsskskjsjhj

评分

呵呵哈哈哈姐姐

评分

评分

很好很好很好很好很好很好

评分

很好很好很好很好很好很好

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有