Stanley B. Lippman 自 1984 年起他一直從事 C++ 方面的工作,曾經(jīng)擔(dān)任迪士尼動畫公司的首席軟件設(shè)計(jì)師。他在 AT&T Bell 實(shí)驗(yàn)室時(shí)曾領(lǐng)導(dǎo)過最早的 C++ 編譯器 cfront 的 3.0 和 2.1 版本的開發(fā)小組。他也曾是 Bjarne Stroustrup 領(lǐng)導(dǎo)的 Bell 實(shí)驗(yàn)室 Foundation 研究項(xiàng)目的成員之一,負(fù)責(zé) C++ 程序設(shè)計(jì)環(huán)境的對象模型部分。目前他已受雇于微軟公司,成為 Microsoft C++/CLI 的架構(gòu)設(shè)計(jì)師。 Josée Lajoie 曾經(jīng)是 IBM 加拿大實(shí)驗(yàn)室的 C/C++ 編譯器開發(fā)組的成員,也曾是 ANSI/ISO C++ 標(biāo)準(zhǔn)委員會的核心語言工作組的主席。她是《 C++ Report 》雜志的專欄作家,目前她在滑鐵盧大學(xué)計(jì)算機(jī)圖形學(xué)碩士學(xué)位。
圖書目錄
Part I: C++, An Overview Chapter 1: Getting Started 1.1: Problem Solving 1.2: The C++ Program 1.3: Preprocessor Directives 1.4: A Word About Comments 1.5: A First Look at Input/Output Chapter 2: A Tour of C++ 2.1: The Built-In Array Data Type 2.2: Dynamic Memory Allocation and Pointers.. 2.3: An Object-Based Design 2.4: An Object-Oriented Design 2.5: A Generic Design 2.6: An Exception-Based Design 2.7: An Array by Any Other Name 2.8: The Standard Array Is a Vector Part II: The Basic Language Chapter 3: The C++ Data Types 3.1: Literal Constant 3.2: Variables 3.3: Pointer Types 3.4: String Types 3.5: const Qualifier 3.6: Reference Types 3.7: The bool Type 3.8: Enumeration Types 3.9: Array Types 3.10: The vector Container Type 3.11: complex Number Types 3.12: Typedef Names 3.13: volatile Qualifier 3.14: The pair Type 3.15: Class Types Chapter 4: Expressions 4.1: What Is an Expression? 4.2: Arithmetic Operators 4.3: Equality, Relational, and Logical Operators.. 4.4: Assignment Operators 4.5: Increment and Decrement Operators 4.6: Complex Number Operations 4.7: The Conditional Operator 4.8: The sizeof Operator 4.9: The new and delete Expressions 4.10: Comma Operator 4.11: The Bitwise Operators 4.12: bitset Operations 4.13: Precedence 4.14: Type Conversions 4.15: AStack Class Example
Chapter 5: Statements 5.1: Simple and Compound Statements 5.2: Declaration Statement 5.3: The if Statement 5.4: The switch Statement 5.5: The for Loop Statement 5.6: The while Statement 5.7: The do while Statement 5.8: The break Statement 5.9: The continue Statement 5.10: The goto Statement 5.11: A Linked List Example Chapter 6: Abstract Container Types 6.1: Our Text Query System 6.2: A vector or a list? 6,3: How a vector Grows Itself 6.4: Defining a Sequence Container 6.5: Iterators 6.6: Sequence Container Operations 6.7: Storing Lines of Text 6.8: Finding a Substring 6.9: Handling Punctuation 6.10: A String by Any Other Format 6.11: Additional String Operations 6.12: Building a Text Location Map 6.13: Building a Word Exclusion Set 6.14: The Complete Program 6.15: Multimap and Multiset 6.16: Stack 6.17: Queue and Priority Queue 6.18: Revisiting Our iStack Class Part III: Procedural-Based Programming Chapter 7: Functions 7.1: Overview 7.2: Function Prototype 7.3: Argument Passing 7.4: Returning a Value 7.5: Recursion 7.6: Inline Functions 7.7: Linkage Directives: extern"C" 7.8: main(): Handling Command Line Options 7.9: Pointers to Functions Chapter 8: Scope and Lifetime 8.1: Scope 8.2: Global Objects and Functions 8.3: Local Objects 8.4: Dynamically Allocated Objects 8.5: Namespace Definitions 8.6: Using Namespace Members Chapter 9: Overloaded Functions 9.1: Overloaded Function Declarations 9.2: The Three Steps of Overload Resolution 9.3: Argument Type Conversions 9.4: Details of Function Overload Resolution Chapter 10: Function Templates 10.1: Function Template Definition 10.2: Function Template Instantiation 10.3: Template Argument Deduction 10.4: Explicit Template Arguments 10.5: Template Compilation Models 10.6: Template Explicit Specialization 10.7: Overloading Function Templates 10.8: Overload Resolution with Instantiations 10.9: Name Resolution in Template Definitions 10.10: Namespaces and Function Templates 10.11: Function Template Example Chapter 11: Exception Handling 11.1: Throwing an Exception 11.2: The Try Block 11.3: Catching an Exception 11.4: Exception Specifications 11.5: Exceptions and Design Issues Chapter 12: The Generic Algorithms 12.1: Overview 12.2: Using the Generic Algorithms 12.3: Function Objects 12.4: Revisiting Iterators 12.5: The Generic Algorithms 12.6: When Not to Use the Generic Algorithms Part IV: Object-Based Prosramming Chapter 13: Classes 13.1: Class Definition 13.2: Class Objects 13.3: Class Member Functions 13.4: The Implicit this Pointer 13.5: Static Class Members 13.6: Pointer to Class Member 13.7: Union: A Space-Saving Class 13.8: Bit-field: A Space-Saving Member 13.9: Class Scope 13.10: Nested Classes 13.11: Classes as Namespace Members 13.2: Local Classes Chapter 14: Class Initialization, Assignment, and Destruction 14.1: Class Initialization 14.2: The Class Constructor 14.3: The Class Destructor 14.4: Class Object Arrays and Vectors 14.5: The Member Initialization List 14.6: Memberwise Initialization 14.7: Memberwise Assignment 14.8: Efficiency Considerations Chapter 15: Overloaded Operators and User-Defined Conversions. ., 15.1: Operator Overloading 15.2: Friends 15.3: Operator 15.4: Operator [ ] 15.5: Operator ( ) 15.6: Operator-> 15.7: Operators ++ and 15.8: Operators new and delete 15.9: User-Defined Conversions 15.10: Selecting a Conversion 15.11: Overload Resolution and Member Functions 15.12: Overload Resolution and Operators Chapter 16: Class Templates 16.1: Class Template Definition 16.2: Class Template Instantiation 16.3:, Member Functions of Class Templates 16.4: Friend Declarations in Class Templates 16.5: Static Data Members of Class Templates 16.6: Nested Types of Class Templates 16.7: Member Templates 16.8: Class Templates and Compilation Model 16.9: Class Template Specializations 16.10: Class Template Partial Specializations 16.11: Name Resolution in Class Templates 16.12: Namespaces and Class Templates 16.13: A Template Array Class Part V: Object-Oriented Programming Chapter 17: Class Inheritance and Subtyping 17.1: Defining a Class Hierarchy 17.2: Identifying the Members of the Hierarchy 17.3: Base Class Member Access 17.4: Base and Derived Class Construction 17.5: Base and Derived Class VirtUal Functions 17.6: Memberwise Initialization and Assignment 17.7: A UserQuery Manager Class 17.8: Putting It Together Chapter 18: Multiple and Virtual Inheritance 18.1: Setting the Stage 18.2: Multiple Inheritance 18.3: Public, Private, and Protected Inheritance 18.4: Class Scope under Inheritance 18.5: Vh'tual Inheritance 18.6: A Multiple, Virtual Inheritance Example Chapter 19: Uses of Inheritance in C ++ 19.1: Run-Tune Type Identification 19.2: Exceptions and Inheritance 19.3: Overload Resolution and Inheritance Chapter 20: The iostream Library 20.1: The Output Operator<< 20.2: Input 20.3: Additional Input/Output Operators 20.4: Overloading the Output Operator << 20.5: Overloading the Input Operator >> 20.8: File Input and Output 20.7: Condition States 20.8: String Streams 20.9: Format State 20.10: A Strongly Typed Library Appendix: The Generic Algorithms Alphabetically.. accumulate() adjacent_difference0 adjacent_find() bimry_search() copy() copy_backward() count() count_if() equal() equal_range() fill() fill_n() find() find_if() find_end() find_first_of() for_each() generate() generate_n() includes() inner_product() inplace_merge() iter_swap () lexicographical_compare() lower_bound() max() max_element() min() min_element() merse() mismatch() next_permutation() nth_element() partial_sort() partial_sort_copy() partial_sum() partition() prev_permutation() random_shuffle() remove() remove_copy() remove_if() remove_copy_if() replace() replace_copy() replace_if() replace_copy_if() reverse() reverse_copy() rotate() rotate_copy() search() search_n() set_difference() set_intersection() set_symmetric_difference() set_union() sort() stable_partition() stable_sort() swap() swap_range() transform() unique() unique_copy() upper_bound() Heap Algorithms make_heap() pop_heap() push_heap() sort_heap() Index