
C++ Programming with Design Patterns Revealed
Tomasz Muldner(Author)
Pearson (Publisher)
Published on 7. November 2001
Book
Paperback/Softback
528 pages
978-0-201-72231-4 (ISBN)
Description
C++ Programming with Design Patterns Revealed is the first book to integrate learning the C++ language with design patterns. It promotes using patterns as the recurring solutions to design problems, resulting in effective, well-structured and reusable programs.
C++ Programming with Design Patterns Revealed is intended for readers already familiar with Java or any other objected oriented programming language. Unlike most books on design patterns, which are appropriate only for advanced programmers, this book is written for C++ novices. Each design pattern is clearly described, illustrated using the Unified Modeling language (UML) and supplemented with carefully integrated examples.
C++ Programming with Design Patterns Revealed covers the full spectrum of programming paradigms, starting with procedural programming, and then moving on to object-based, object-oriented and generic programming paradigm. It provides complete in-depth coverage of all essential features of the current C++ ANSI standard, including namespaces, exception handling, generic programming and an introduction to the Standard Template Library (STL). However, the book does not stop at describing the syntax and semantics of the language. Various design patterns are used to describe numerous high-level concepts, including smart pointers, reference counting, double dispatching, heterogeneous containers, and many others.
C++ Programming with Design Patterns Revealed is intended for readers already familiar with Java or any other objected oriented programming language. Unlike most books on design patterns, which are appropriate only for advanced programmers, this book is written for C++ novices. Each design pattern is clearly described, illustrated using the Unified Modeling language (UML) and supplemented with carefully integrated examples.
C++ Programming with Design Patterns Revealed covers the full spectrum of programming paradigms, starting with procedural programming, and then moving on to object-based, object-oriented and generic programming paradigm. It provides complete in-depth coverage of all essential features of the current C++ ANSI standard, including namespaces, exception handling, generic programming and an introduction to the Standard Template Library (STL). However, the book does not stop at describing the syntax and semantics of the language. Various design patterns are used to describe numerous high-level concepts, including smart pointers, reference counting, double dispatching, heterogeneous containers, and many others.
More details
Language
English
Place of publication
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Height: 100 mm
Width: 100 mm
Thickness: 100 mm
Weight
100 gr
ISBN-13
978-0-201-72231-4 (9780201722314)
Schweitzer Classification
Content
1. A Quick Tour of C++.
Preview.
First Example.
Basic Constructs.
Inheritance.
Exceptions and Namespaces.
Generic Programming.
Second Example: Arithmetic Expressions.
Version I.
Version II.
2. Procedural Programming.
Preview.
Introduction to Principles of Software Design and Implementation.
Main Program.
Basics: Types, Control Structures and Simple I/O.
Functions.
Pointers and Dynamic Memory Management.
Static Local Variables.
File Organization and Standard Facilities.
Exercises.
3. Object-Based Programming, Part I.
Preview.
Basic Terminology and Class Definition.
Exception Handling.
Managing Objects.
Constant and Static Features.
Pure Static Classes.
Initialization of Local and Global Variables.
Reference Types and Their Applications.
Resources Management, Part I: The Use of Constructors, Assignment Operator and Destructor.
Arrays.
Exercises.
4. Object-Based Programming, Part II.
Preview.
UML Class Notations.
Reusability through Object Composition.
Managing the Creational Process, Part I.
First Design Pattern: Singleton.
Namespaces, Part II.
Need for Recompiling and Header Files, Part I.
Application: List of Students.
Exercises.
5. Object-Oriented Programming, Part I.
Preview.
Basic Terminology and a Derived Class Definition.
Public Inheritance.
Creating Objects.
RTTI and Type Conversions.
Copy Constructors.
Scope and Visibility Modifiers.
Polymorphism and Virtual Functions.
Destructing Objects.
Overloaded Assignments.
Overloading and Overriding.
Passing Arguments by Value and by Reference.
Standard Exceptions.
Resource Management, Part II.
Abstract Operations and Classes.
Friends.
Exercises.
6. Object-Oriented Programming, Part II.
Preview.
Managing the Creational Process, Part II: Abstract Factory Design Pattern.
Private Inheritance.
Protected Inheritance.
Revisiting Inheritance.
Programming to an Interface.
Application of Design Patterns: Arithmetic Expressions.
Exercises.
7. Introduction to Generic Programming: Parameterized Types.
Preview.
Introduction.
Overloaded Operators.
Proxy Design Pattern.
Designing Iterators.
Templates.
Resource Management, Part III.
Inheritance and Delegation versus Parameterized Types.
Applications of Templates to Design Patterns.
Exercises.
8. Generic Programming Using STL.
Preview.
Introduction.
Introduction to Iterators and Containers.
Iterators, Part I.
Making Algorithms Generic.
Generic Algorithms.
Containers and Their Common Types and Operations.
Iterators, Part II.
Sequence Operations.
Associative Containers: Sets, Maps, Multisets and Multimaps.
STL and Error Handling.
Reference Counting and STL Containers.
Exercises.
9. Miscellaneous Topics.
Preview.
Input/Output Library.
Separate Compilation and Linkage.
Generic Pointers and Pointers to Functions.
Overloading Memory Management.
Debugging and Handling Errors.
Type ID.
Multiple Inheritance.
Pointers to Members and Function Adapters.
Heterogeneous Containers and Composite and Visitor Design Patterns.
Exercises.
Appendices.
A. The List of Tables, Figures and Examples.
B. The List of Idioms, Patterns and Concepts.
C. The List of C++ Keywords.
D. Numeric Types.
E. Strings Operations.
F. The List of Generic Algorithms.
G. The List of Standard Header Files.
H. The List of C++ Compilers and STL Libraries.
I. Bibliography.
Preview.
First Example.
Basic Constructs.
Inheritance.
Exceptions and Namespaces.
Generic Programming.
Second Example: Arithmetic Expressions.
Version I.
Version II.
2. Procedural Programming.
Preview.
Introduction to Principles of Software Design and Implementation.
Main Program.
Basics: Types, Control Structures and Simple I/O.
Functions.
Pointers and Dynamic Memory Management.
Static Local Variables.
File Organization and Standard Facilities.
Exercises.
3. Object-Based Programming, Part I.
Preview.
Basic Terminology and Class Definition.
Exception Handling.
Managing Objects.
Constant and Static Features.
Pure Static Classes.
Initialization of Local and Global Variables.
Reference Types and Their Applications.
Resources Management, Part I: The Use of Constructors, Assignment Operator and Destructor.
Arrays.
Exercises.
4. Object-Based Programming, Part II.
Preview.
UML Class Notations.
Reusability through Object Composition.
Managing the Creational Process, Part I.
First Design Pattern: Singleton.
Namespaces, Part II.
Need for Recompiling and Header Files, Part I.
Application: List of Students.
Exercises.
5. Object-Oriented Programming, Part I.
Preview.
Basic Terminology and a Derived Class Definition.
Public Inheritance.
Creating Objects.
RTTI and Type Conversions.
Copy Constructors.
Scope and Visibility Modifiers.
Polymorphism and Virtual Functions.
Destructing Objects.
Overloaded Assignments.
Overloading and Overriding.
Passing Arguments by Value and by Reference.
Standard Exceptions.
Resource Management, Part II.
Abstract Operations and Classes.
Friends.
Exercises.
6. Object-Oriented Programming, Part II.
Preview.
Managing the Creational Process, Part II: Abstract Factory Design Pattern.
Private Inheritance.
Protected Inheritance.
Revisiting Inheritance.
Programming to an Interface.
Application of Design Patterns: Arithmetic Expressions.
Exercises.
7. Introduction to Generic Programming: Parameterized Types.
Preview.
Introduction.
Overloaded Operators.
Proxy Design Pattern.
Designing Iterators.
Templates.
Resource Management, Part III.
Inheritance and Delegation versus Parameterized Types.
Applications of Templates to Design Patterns.
Exercises.
8. Generic Programming Using STL.
Preview.
Introduction.
Introduction to Iterators and Containers.
Iterators, Part I.
Making Algorithms Generic.
Generic Algorithms.
Containers and Their Common Types and Operations.
Iterators, Part II.
Sequence Operations.
Associative Containers: Sets, Maps, Multisets and Multimaps.
STL and Error Handling.
Reference Counting and STL Containers.
Exercises.
9. Miscellaneous Topics.
Preview.
Input/Output Library.
Separate Compilation and Linkage.
Generic Pointers and Pointers to Functions.
Overloading Memory Management.
Debugging and Handling Errors.
Type ID.
Multiple Inheritance.
Pointers to Members and Function Adapters.
Heterogeneous Containers and Composite and Visitor Design Patterns.
Exercises.
Appendices.
A. The List of Tables, Figures and Examples.
B. The List of Idioms, Patterns and Concepts.
C. The List of C++ Keywords.
D. Numeric Types.
E. Strings Operations.
F. The List of Generic Algorithms.
G. The List of Standard Header Files.
H. The List of C++ Compilers and STL Libraries.
I. Bibliography.