Online Book Reader

Home Category

Professional C__ - Marc Gregoire [0]

By Root 1081 0
CONTENTS

Part I: Introduction to Professional C++

Chapter 1: A Crash Course in C++

The Basics of C++

Diving Deeper into C++

C++ as an Object-Oriented Language

The Standard Library

Your First Useful C++ Program

Summary

Chapter 2: Designing Professional C++ Programs

What Is Programming Design?

The Importance of Programming Design

What’s Different about C++ Design?

Two Rules for C++ Design

Reusing Code

Designing with Patterns and Techniques

Designing a Chess Program

Summary

Chapter 3: Designing with Objects

Am I Thinking Procedurally?

The Object-Oriented Philosophy

Living in a World of Objects

Object Relationships

Abstraction

Summary

Chapter 4: Designing for Reuse

The Reuse Philosophy

How to Design Reusable Code

Summary

Chapter 5: Coding with Style

The Importance of Looking Good

Documenting Your Code

Decomposition

Naming

Using Language Features with Style

Formatting

Stylistic Challenges

Summary

Part II: C++ Coding the Professional Way

Chapter 6: Gaining Proficiency With Classes and Objects

Introducing the Spreadsheet Example

Writing Classes

Object Life Cycles

Summary

Chapter 7: Mastering Classes and Objects

Dynamic Memory Allocation in Objects

Different Kinds of Data Members

More about Methods

Nested Classes

Enumerated Types Inside Classes

Friends

Operator Overloading

Building Stable Interfaces

Summary

Chapter 8: Discovering Inheritance Techniques

Building Classes with Inheritance

Inheritance for Reuse

Respect Your Parents

Inheritance for Polymorphism

Multiple Inheritance

Interesting and Obscure Inheritance Issues

Summary

Chapter 9: Understanding C++ Quirks and Oddities

References

Keyword Confusion

Types and Casts

Scope Resolution

C++11

Header Files

C Utilities

Summary

Chapter 10: Handling Errors

Errors and Exceptions

Exception Mechanics

Exceptions and Polymorphism

Stack Unwinding and Cleanup

Common Error-Handling Issues

Putting It All Together

Summary

Chapter 11: Delving into the Standard Library

Coding Principles

Overview of the C++ Standard Library

Summary

Chapter 12: Understanding Containers and Iterators

Containers Overview

Sequential Containers

Container Adapters

Associative Containers

Unordered Associative Containers/Hash Tables

Other Containers

Summary

Chapter 13: Mastering STL Algorithms

Overview of Algorithms

Lambda Expressions

Function Objects

Algorithm Details

Algorithms Example: Auditing Voter Registrations

Summary

Chapter 14: Using Strings and Regular Expressions

Dynamic Strings

Localization

Regular Expressions

Summary

Chapter 15: Demystifying C++ I/O

Using Streams

String Streams

File Streams

Bidirectional I/O

Summary

Chapter 16: Additional Library Utilities

std::function

Ratios

The Chrono Library

Random Number Generation

Tuples

Summary

Chapter 17: Customizing and Extending the STL

Allocators

Iterator Adapters

Extending the STL

Summary

Part III: Mastering Advanced Features of C++

Chapter 18: Overloading C++ Operators

Overview of Operator Overloading

Overloading the Arithmetic Operators

Overloading the Bitwise and Binary Logical Operators

Overloading the Insertion and Extraction Operators

Overloading the Subscripting Operator

Overloading the Function Call Operator

Overloading the Dereferencing Operators

Writing Conversion Operators

Overloading the Memory Allocation and Deallocation Operators

Summary

Chapter 19: Writing Generic Code with Templates

Overview of Templates

Class Templates

Function Templates

Summary

Chapter 20: Advanced Templates

More about Template Parameters

Template Class Partial Specialization

Emulating Function Partial Specialization with Overloading

Template Recursion

Type Inference

Variadic Templates

Metaprogramming

Summary

Chapter 21: Effective Memory Management

Working with Dynamic Memory

Array-Pointer

Return Main Page Next Page

®Online Book Reader