Paul Deitel和Harvey Deitel是全球暢銷的編程語言教材和專業(yè)圖書作家,“How to Program”系列是其*負盛名的一套計算機編程教材,已經(jīng)銷售近40年,并被翻譯成中文在內(nèi)的十幾種語言。他們成立的Deitel & Associates公司是一家國際知名的企業(yè)培訓(xùn)和寫作公司,專門進行計算機編程語言、對象技術(shù)、移動應(yīng)用開發(fā)及Internet和Web軟件技術(shù)方面的培訓(xùn)和寫作,出版了一流的編程專業(yè)的大學(xué)教材、 專業(yè)圖書以及LiveLessons視頻課程。Paul Deitel和Harvey Deitel是全球暢銷的編程語言教材和專業(yè)圖書作家,“How to Program”系列是其*負盛名的一套計算機編程教材,已經(jīng)銷售近40年,并被翻譯成中文在內(nèi)的十幾種語言。他們成立的Deitel & Associates公司是一家國際知名的企業(yè)培訓(xùn)和寫作公司,專門進行計算機編程語言、對象技術(shù)、移動應(yīng)用開發(fā)及Internet和Web軟件技術(shù)方面的培訓(xùn)和寫作,出版了一流的編程專業(yè)的大學(xué)教材、 專業(yè)圖書以及LiveLessons視頻課程。
圖書目錄
Contents Chapter 1 Introduction to Computers and C++ 1 1.1 Introduction 2 1.2 Computers and the Internet in Industry and Research 2 1.3 Hardware and Software 4 1.4 Data Hierarchy 6 1.5 Machine Languages, Assembly Languages and High-Level Languages 7 1.6 C++ 8 1.7 Programming Languages 9 1.8 Introduction to Object Technology 10 1.9 Typical C++ Development Environment 13 1.10 Test-Driving a C++ Application 15 1.11 Operating Systems 20 1.12 The Internet and World Wide Web 22 1.13 Some Key Software Development Terminology 23 1.14 C++11 and the Open Source Boost Libraries 25 1.15 Keeping Up to Date with Information Technologies 25 1.16 Web Resources 26 Chapter 2 Introduction to C++ Programming; Input/Output and Operators 31 2.1 Introduction 31 2.2 First Program in C++: Printing a Line of Text 32 2.3 Modifying Our First C++ Program 35 2.4 Another C++ Program: Adding Integers 36 2.5 Memory Concepts 39 2.6 Arithmetic 40 2.7 Decision Making: Equality and Relational Operators 43 2.8 Wrap-Up 47 Chapter 3 Introduction to Classes, Objects and Strings 55 3.1 Introduction 55 3.2 Defining a Class with a Member Function 56 3.3 Defining a Member Function with a Parameter 58 3.4 Data Members, set Member Functions and get Member Functions 61 3.5 Initializing Objects with Constructors 66 3.6 Placing a Class in a Separate File for Reusability 69 3.7 Separating Interface from Implementation 72 3.8 Validating Data with set Functions 76 3.9 Wrap-Up 80 Chapter 4 Control Statements: Part 1; Assignment, ++ and - - Operators 87 4.1 Introduction 87 4.2 Algorithms 88 4.3 Pseudocode 88 4.4 Control Structures 89 4.5 if Selection Statement 92 4.6 if…else Double-Selection Statement 93 4.7 while Repetition Statement 97 4.8 Formulating Algorithms: Counter-Controlled Repetition 98 4.9 Formulating Algorithms: Sentinel-Controlled Repetition 103 4.10 Formulating Algorithms: Nested Control Statements 111 4.11 Assignment Operators 116 4.12 Increment and Decrement Operators 116 4.13 Wrap-Up 118 Chapter 5 Control Statements: Part 2; Logical Operators 131 5.1 Introduction 131 5.2 Essentials of Counter-Controlled Repetition 132 5.3 for Repetition Statement 133 5.4 Examples Using the for Statement 136 5.5 do…while Repetition Statement 140 5.6 switch Multiple-Selection Statement 141 5.7 break and continue Statements 148 5.8 Logical Operators 150 5.9 Confusing the Equality (==) and Assignment (=) Operators 153 5.10 Structured Programming Summary 154 5.11 Wrap-Up 158 Chapter 6 Functions and an Introduction to Recursion 167 6.1 Introduction 168 6.2 Program Components in C++ 168 6.3 Math Library Functions 169 6.4 Function Definitions with Multiple Parameters 170 6.5 Function Prototypes and Argument Coercion 174 6.6 C++ Standard Library Headers 176 6.7 Case Study: Random Number Generation 177 6.8 Case Study: Game of Chance; Introducing enum 182 6.9 C++11 Random Numbers 185 6.10 Storage Classes and Storage Duration 186 6.11 Scope Rules 189 6.12 Function Call Stack and Activation Records 191 6.13 Functions with Empty Parameter Lists 194 6.14 Inline Functions 195 6.15 References and Reference Parameters 196 6.16 Default Arguments 198 6.17 Unary Scope Resolution Operator 200 6.18 Function Overloading 200 6.19 Function Templates 203 6.20 Recursion 205 6.21 Example Using Recursion: Fibonacci Series 208 6.22 Recursion vs. Iteration 210 6.23 Wrap-Up 213 Chapter 7 Class Templates array and vector; Catching Exceptions 232 7.1 Introduction 233 7.2 arrays 233 7.3 Declaring arrays 234 7.4 Examples Using arrays 235 7.5 Range-Based for Statement 244 7.6 Case Study: Class GradeBook Using an array to Store Grades 246 7.7 Sorting and Searching arrays 251 7.8 Multidimensional arrays 252 7.9 Case Study: Class GradeBook Using a Two-Dimensional array 255 7.10 Introduction to C++ Standard Library Class Template vector 260 7.11 Wrap-Up 264 Chapter 8 Pointers 279 8.1 Introduction 280 8.2 Pointer Variable Declarations and Initialization 280 8.3 Pointer Operators 281 8.4 Pass-by-Reference with Pointers 283 8.5 Built-In Arrays 287 8.6 Using const with Pointers 289 8.7 sizeof Operator 292 8.8 Pointer Expressions and Pointer Arithmetic 294 8.9 Relationship Between Pointers and Built-In Arrays 296 8.10 Pointer-Based Strings 299 8.11 Wrap-Up 301 Chapter 9 Classes: A Deeper Look; Throwing Exceptions 316 9.1 Introduction 317 9.2 Time Class Case Study 317 9.3 Class Scope and Accessing Class Members 323 9.4 Access Functions and Utility Functions 324 9.5 Time Class Case Study: Constructors with Default Arguments 324 9.6 Destructors 328 9.7 When Constructors and Destructors Are Called 329 9.8 Time Class Case Study: A Subtle Trap― Returning a Reference or a Pointer to a private Data Member 331 9.9 Default Memberwise Assignment 334 9.10 const Objects and const Member Functions 335 9.11 Composition: Objects as Members of Classes 337 9.12 friend Functions and friend Classes 341 9.13 Using the this Pointer 343 9.14 static Class Members 347 9.15 Wrap-Up 351 Chapter 10 Operator Overloading; Class string 361 10.1 Introduction 362 10.2 Using the Overloaded Operators of Standard Library Class string 362 10.3 Fundamentals of Operator Overloading 365 10.4 Overloading Binary Operators 366 10.5 Overloading the Binary Stream Insertion and Stream Extraction Operators 367 10.6 Overloading Unary Operators 370 10.7 Overloading the Unary Prefix and Postfix ++ and -- Operators 370 10.8 Case Study: A Date Class 371 10.9 Dynamic Memory Management 375 10.10 Case Study: Array Class 377 10.11 Operators as Member vs. Non-Member Functions 387 10.12 Converting Between Types 388 10.13 explicit Constructors and Conversion Operators 389 10.14 Overloading the Function Call Operator () 391 10.15 Wrap-Up 392 Chapter 11 Object-Oriented Programming: Inheritance 402 11.1 Introduction 402 11.2 Base Classes and Derived Classes 403 11.3 Relationship between Base and Derived Classes 405 11.4 Constructors and Destructors in Derived Classes 422 11.5 public, protected and private Inheritance 424 11.6 Software Engineering with Inheritance 425 11.7 Wrap-Up 425 Chapter 12 Object-Oriented Programming: Polymorphism 431 12.1 Introduction 432 12.2 Introduction to Polymorphism: Polymorphic Video Game 432 12.3 Relationships Among Objects in an Inheritance Hierarchy 433 12.4 Type Fields and switch Statements 443 12.5 Abstract Classes and Pure virtual Functions 444 12.6 Case Study: Payroll System Using Polymorphism 445 12.7 (Optional) Polymorphism, Virtual Functions and Dynamic Binding “Under the Hood” 456 12.8 Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, dynamic_cast, typeid and type_info 459 12.9 Wrap-Up 462 Chapter 13 Stream Input/Output: A Deeper Look 468 13.1 Introduction 469 13.2 Streams 469 13.3 Stream Output 472 13.4 Stream Input 473 13.5 Unformatted I/O Using read, write and gcount 476 13.6 Introduction to Stream Manipulators 477 13.7 Stream Format States and Stream Manipulators 481 13.8 Stream Error States 488 13.9 Tying an Output Stream to an Input Stream 490 13.10 Wrap-Up 490 Chapter 14 File Processing 499 14.1 Introduction 499 14.2 Files and Streams 500 14.3 Creating a Sequential File 500 14.4 Reading Data from a Sequential File 504 14.5 Updating Sequential Files 508 14.6 Random-Access Files 508 14.7 Creating a Random-Access File 509 14.8 Writing Data Randomly to a Random-Access File 513 14.9 Reading from a Random-Access File Sequentially 514 14.10 Case Study: A Transaction-Processing Program 516 14.11 Object Serialization 521 14.12 Wrap-Up 521 Chapter 15 Standard Library Containers and Iterators 530 15.1 Introduction 531 15.2 Introduction to Containers 532 15.3 Introduction to Iterators 535 15.4 Introduction to Algorithms 538 15.5 Sequence Containers 539 15.6 Associative Containers 550 15.7 Container Adapters 557 15.8 Class bitset 561 15.9 Wrap-Up 562 Chapter 16 Standard Library Algorithms 573 16.1 Introduction 573 16.2 Minimum Iterator Requirements 574 16.3 Algorithms 575 16.4 Function Objects 600 16.5 Lambda Expressions 603 16.6 Standard Library Algorithm Summary 604 16.7 Wrap-Up 605 Chapter 17 Exception Handling: A Deeper Look 613 17.1 Introduction 613 17.2 Example: Handling an Attempt to Divide by Zero 614 17.3 Rethrowing an Exception 618 17.4 Stack Unwinding 620 17.5 When to Use Exception Handling 621 17.6 Constructors, Destructors and Exception Handling 622 17.7 Exceptions and Inheritance 622 17.8 Processing new Failures 623 17.9 Class unique_ptr and Dynamic Memory Allocation 625 17.10 Standard Library Exception Hierarchy 627 17.11 Wrap-Up 628 Chapter 18 Introduction to Custom Templates 634 18.1 Introduction 634 18.2 Class Templates 635 18.3 Function Template to Manipulate a Class-Template Specialization Object 638 18.4 Nontype Parameters 640 18.5 Default Arguments for Template Type Parameters 640 18.6 Overloading Function Templates 640 18.7 Wrap-Up 641 Chapter 19 Custom Templatized Data Structures 644 19.1 Introduction 644 19.2 Self-Referential Classes 645 19.3 Linked Lists 646 19.4 Stacks 657 19.5 Queues 660 19.6 Trees 663 19.7 Wrap-Up 669 Chapter 20 Searching and Sorting 680 20.1 Introduction 680 20.2 Searching Algorithms 681 20.3 Sorting Algorithms 687 20.4 Wrap-Up 696 Chapter 21 Class string and String Stream Processing: A Deeper Look 702 21.1 Introduction 703 21.2 string Assignment and Concatenation 704 21.3 Comparing strings 705 21.4 Substrings 707 21.5 Swapping strings 708 21.6 string Characteristics 708 21.7 Finding Substrings and Characters in a string 710 21.8 Replacing Characters in a string 711 21.9 Inserting Characters into a string 713 21.10 Conversion to Pointer-Based char * Strings 713 21.11 Iterators 715 21.12 String Stream Processing 715 21.13 C++11 Numeric Conversion Functions 718 21.14 Wrap-Up 719 Chapter 22 Bits, Characters, C Strings and structs 726 22.1 Introduction 727 22.2 Structure Definitions 727 22.3 typedef 728 22.4 Example: Card Shuffling and Dealing Simulation 728 22.5 Bitwise Operators 730 22.6 Bit Fields 737 22.7 Character-Handling Library 740 22.8 C String-Manipulation Functions 744 22.9 C String-Conversion Functions 749 22.10 Search Functions of the C String-Handling Library 753 22.11 Memory Functions of the C String-Handling Library 756 22.12 Wrap-Up 759 Chapter 23 Other Topics 773 23.1 Introduction 773 23.2 const_cast Operator 774 23.3 mutable Class Members 775 23.4 namespaces 776 23.5 Operator Keywords 779 23.6 Pointers to Class Members (.* and ->*) 781 23.7 Multiple Inheritance 782 23.8 Multiple Inheritance and virtual Base Classes 786 23.9 Wrap-Up 789 Appendix A Operator Precedence and Associativity 794 Appendix B ASCII Character Set 796 Appendix C Fundamental Types 797 Appendix D Number Systems 799 Appendix E Preprocessor 809 Index 819
本書的第24章~第26章、附錄F~附錄K請登錄華信教育資源網(wǎng)(www.hxedu.com.cn)下載。 Chapter 24 C++11: Additional Features Chapter 25 ATM Case Study, Part 1: Object-Oriented Design with the UML Chapter 26 ATM Case Study, Part 2: Implementing an Object-Oriented Design Appendix F C Legacy Code Topics Appendix G UML 2: Additional Diagram Types Appendix H Using the Visual Studio Debugger Appendix I Using the GNU C++ Debugger Appendix J Using the Xcode Debugger Appendix K Test Driving a C++ Program on Mac OS X