Register your product to gain access to bonus material or receive a coupon.
Jesse Liberty's C++ Unleashed presents focused explanations of the core features and complexities of C++. The text covers advanced object-oriented analysis and design strategies and implementation issues associated with memory management, STL container classes, iterators, and algorithms. Manipulate data using dynamic data structures and recursion, efficient sorting algorithms, and advanced hashing and parsing techniques.
I. OBJECT-ORIENTED PROGRAMMING.
1. Object-Oriented Analysis and Design.
Building Models. Software Design: The Modeling Language. Software Design: The Process. The Vision. Requirements Analysis. Design. Summary.
2. Implementing Class Design In C++.
Translating Class Diagrams into C++. Translating Interaction Diagrams into C++. Translating State Transition Diagrams into C++. Translating Activity Diagrams into C++. Summary.
3. Inheritance, Polymorphism, and Code Reuse.
Benefits of Inheritance. Object-Oriented Linked Lists. Abstract Classes. Virtual Destructors. Polymorphism Through Method Overloading. Memory Management. Issues in Overloading Other Operators. Multiple Inheritance. Summary.
II. IMPLEMENTATION ISSUES.
4. Memory Management.
Memory Management and Pointers. Pointers and Exceptions. Summary.
5. How to Use Frameworks.
The Microsoft Foundation Classes. Gaining Perspective. Issues in Preemptive Multithreading. A Brief Case Study. Utility Classes. Documents and Views. Summary.
6. Standard Template Library Container Classes.
Defining and Instantiating Templates. Understanding Sequence Containers. Understanding Stacks. Understanding Queues. Understanding Associative Containers. Considering Performance Issues. Using the Standard C++ Library. Designing Element Types. Summary.
7. STL Iterators and Algorithms.
Iterator Classes. Function Objects. Algorithm Classes. Summary.
8. Avoiding Name Clashes By Using Namespaces.
Functions and Classes Are Resolved by Name. Creating a Namespace. Using a Namespace. The using Keyword. The Namespace Alias. The Unnamed Namespace. The Standard Namespace std. Summary.
9. Manipulating Object Types at Runtime.
The typeid() Operator. The type_info Class. The Constructor for the type_info Class. Dynamic Typecasting of Objects. Other Cast Operators. New Versus Old Typecasting. Summary.
10. Tuning Application Performance.
Inline Functions Outside Class Definitions. Avoid Revealing Implementation Code in Distributed Header Files. Analyzing the Cost of Virtual Functions and Virtual Base Classes. RTTI Trade-Offs. Managing Memory for Temporary Objects. Summary.
III. MANIPULATING DATA.
11. Recursion and Recursive Data Structures.
What Is Recursion? Recursive Structures. Traversing a Recursive Structure with a Recursive Function. Recursion Versus Iteration and Tail Recursion. Indirect Recursion. Recursion and the Stack. Debugging Recursive Functions. Summary.
12. Designing Efficient Sorting Methods.
Analyzing the Performance of Algorithms. The Bubble Sort. The Insertion Sort. The Selection Sort. Analysis of the Selection Sort. The Quick Sort. The Merge Sort. The Shell Sort. The Heap Sort. Choosing a Sort Method. Generating Test Data. Summary.
13. Search Algorithms In C++.
Linear Searches. Pattern Matching. Graph Algorithms. External Searching. Summary.
14. Hashing and Parsing Techniques.
Searching Versus Hashing. Hash Functions. Collision Resolution. Parsing. Summary.
IV. OBJECT PERSISTENCE AND ENCRYPTION.
15. Object Persistence.
Creating Storable Objects. Caching. Swapping to Disk. Summary.
16. Relational Databases and Persistence.
Basic Concepts of Relational Databases. Architecture of a Relational Database. SQL: Defining and Querying the Database. Persisting to a Relational Database. Hiding the Details. SQL Statements. Summary.
17. Object Persistence Using Relational Databases.
Objects in Oracle8. Using External Procedures Developed in C++. Mapping UML Diagrams to an Object-Relational Database. Case Study: Purchase Order System.
18. Object-Oriented Databases.
Overview of ODBMS. The ODMG Standard. A C++ Invoicing Application. Data Persistence. Databases and Transactions. ODBMS Technical Issues. Summary.
19. Protecting Applications Using Encryption.
A Brief History of Encryption. Understanding Encryption. Private Key Cryptography. Public Key Cryptography. Using Pretty Good Privacy (PGP). Limitations of Cryptography. Legal Restrictions on Cryptography. Cryptographic Attacks. Digital Signatures. Commercial Cryptographic Products. Summary.
V. DISTRIBUTED COMPUTING TOPICS.
20. COBRA.
Theory and Justification. IDL:The Binding Contract. The Object Request Broker. Comparing CORBA Environments. Creating the C++ Client. Creating the C++ Server. A Java Client. Testing Strategies. The Naming Service and Interoperability. Performance. Summary.
21. COM.
COM Fundamentals. Using COM Objects in C++. Using Raw Interfaces. Writing COM Objects in C++. Summary.
22. Java and C++.
Similarities Between C++ and Java. Differences Between C++ and Java. Object-Oriented Features of Java. Summary.
Index.