内容简介
C++:The Making of a Standard
PartⅠ Preliminaries
1 A Better C
A Tale Of Two Languages
Incremental Journey
The Type System
Function Prototypes
Type-safe Linkage
References
Type-safe I/O
Standard Streams
Formatting
Manipulators
Function Overloading and Function Templates
Operator Overloading
Inline Functions
Default Arguments
new and delete
Statement Declarations
Standard Library Features
C Compatibility
Summary
2 Pointers
Programming on the Edge
The Basics
Pointer Arithmetic
Pass-By-Reference Semantics
Generic Pointers
const Pointers
Pointers and One-Dimensional Arrays
Arrays as Parameters
Arrays of Strings
Pointers and Multidimensional Arrays
Higher and Deeper
Pointers to Functions
Pointers to Member Functions
Encapsulation and Incomplete Types
Summary
3 The Preprocessor
The #include Directive
Other Preprocessor Directives
Predefined Macros
Conditional Compilation
Preprocessing Operators
Implementing assert
Macro Magic
Character Sets,Trigraphs,and Digraphs
Phases of Translation
Summary
4 The Standard C Library,Part Ⅰ
5 The Standard C Library,Part Ⅱ
Appendix 5.1:Character Sets
Code Pages
Character Set Standards
ISO 10646
Unicode
6 The Standard C Library,Part Ⅲ
va_list s As Arguments
An Application
Conclusion
Appendix 6.1:Floating-point Number Systems
Part Ⅱ Key Concepts
7 Abstraction
Data Abstraction
Operator Overloading
Concrete Data Types
Type Abstraction
Function Abstraction
Summary
8 Templates
Generic Programming
Function Templates
Class Templates
Template Parameters
Template Specialization
Summary
9 Bit Manipulation
Bitwise Operators
Accessing Individual Bits
Large Bitsets
The bitset Template
Wish List
Bit Strings
The vector
Summary
10 Conversions and Casts
Integral Promotion
Demotions
Arithmetic Conversions
Function Prototypes
Explicit Conversions
Function-style Casts
Const Correctness
User-Defined Conversions
Beefing up operator[]
New-Style Casts
Summary
What s In a Name?
Scope
11 Visibility
Minimal Scoping
Class Scope
Nested Classes
Local Classes
Classic Namespaces
Namespace Scope
Lifetime
Lifetime of Temporaries
Linkage
Type-safe Linkage
Summary
Language Linkage
12 Control Structures
Structured Programming
Branching
Nonlocal Branching
Signals
Summary
References
13 Exceptions
Error Handling Alternatives
Stack Unwinding
Catching Exceptions
Standard Exceptions
Constructors and Exceptions
Resource Management
Memory Management
Exception Specifications
An Error-Handling Strategy
Summary
14 Object-oriented Programming
Inheritance
Heterogeneous Collections
Virtual Functions and Polymorphism
Abstract Base Classes
Case Study:A Framework for Object Persistence
Database Access
Mapping Objects to Relational Schema
PFX Architecture
A Code Walkthrough
Summary
Part Ⅲ Leveraging the Standard Library
15 Algorithms
Complexity
Generic Algorithms
Function Objects
Function Taxonomy
Function Object Adapters
Algorithm Taxonomy
16 Containers and Iterators
Summary
References
Standard Containers
Iterators
Iterator Taxonomy
Special-Purpose Iterators
Container Adapters
Associative Containers
Applications
Non-STL Containers
Summary
17 Text Processing
scanf
printf
Substrings
The Standard C++ String Class
String Streams
Wide Strings
Summary
18 File Processing
Filters
Binary Files
Record Processing
Temporary Files
Portability
POSIX
File Descriptors
Copying Files via Descriptors
Reading Directory Entries
Redirecting Standard Error
Encapsulating Directory Operations
Summary
19 Time and Date Processing
Julian Day Encoding
Date Classes for Real Work
Calculating the Week of the Year
Summary
Reference
20 Dynamic Memory Management
Ragged Arrays
Using the Heap in Standard C
The C++ Free Store
Deep versus Shallow Copy
Handling Memory Allocation Failure
Overriding new and delete
Placement new
Managing the Heap
Avoiding Memory Management
Summary
Appendices
A C/C++ Compatibility
B Standard C++ Algorithms
C Function Objects and Adapters
Function Objects
Function Object Adapters
D Annotated Bibliography
The C Practitioner s Booklist
The C++ Practitioner s Booklist
Index