About the Book
C++ by Dissection presents a thorough
introduction to the programming process by carefully developing working
programs to illuminate key features of the C++ programming language. This
book presents the concepts of the programming process using the "dissection"
method. Dissection is a unique pedagogical tool first developed by the
author to point out key features of program code. It is similar to a structured
walk-through of the code, with the intention of explaining newly encountered
programming elements and idioms as found in working code.
The book assumes no programming background
and can be used by first time computer users or by experienced programmers
who are transitioning to C++. Each chapter presents a number of carefully
explained programs, which lead the reader in a holistic manner to ever-improving
programming skills. Right from the start, the reader is introduced to complete
programs, and at an early point in the book, the reader is introduced to
writing functions as a major feature of structured programming.
Features
-
Includes complete, executable code in every
chapter, which is explained using the classic dissection method—a structured
walkthrough of the code.
-
Contains four to seven small code dissections
per chapter, and then each chapter culminates with a larger, extended code
dissection.
-
Includes "Software Engineering" sections in
each chapter that reinforce sound software engineering skills.
-
Stresses programming style and methodology
throughout, with careful explanation as to its importance and rationale.
-
Provides common programming errors, end-of-chapter
review questions, exercises, and summaries, as well as an Instructor's
Manual with answers (for qualified college instructors), to make this an
ideal text from which to learn and teach the material.
-
Complete with a CD-ROM containing a compiler
and an electronic version of the book that allows readers to search, take
notes, and highlight right on their computer.
Related
Books
Introduction to Computer Programming Courses
(Intro
to Computer Programming)
Table of Contents
1. Writing an ANSI C++ Program.
Getting Ready to Program.
A First Program.
Problem Solving Recipes.
Implementing Our Algorithm in C++.
Software Engineering: Style.
Dr. P's Prescriptions.
C++ compared with Java.
2. Native Types and Statements.
Program Elements.
Input/Output.
Program Structure.
Simple Types.
The Traditional Conversions.
Enumeration Types.
Expressions.
Statements.
Software Engineering: Debugging.
Dr. P's Prescriptions.
C++ compared with Java.
3. Functions, Pointers and Arrays.
Functions.
Function Invocation.
Function Definition.
The return Statement.
Function Prototypes.
Default Arguments.
Functions as Arguments.
Overloading Functions.
Inlining.
Scope and Storage Class.
Namespaces.
Pointer Types.
Reference Declarations.
The Uses of void.
Arrays.
Arrays and Pointers.
Passing Arrays to Functions.
Core Language ADT: char* String.
Multidimensional Arrays.
Operators new and delete.
Software Engineering: Program Correctness.
Dr. P's Prescriptions.
C++ Compared with Java.
4. Classes and Abstract Data Types.
The Aggregate Type class and struct.
Member Selection Operator.
Member Functions.
Access: Private and Public.
Classes.
Class Scope.
An Example: Flushing.
The this Pointer.
static and const Members.
A Container Class Example: ch_stack.
Software Engineering: Class Design.
Dr. P's Prescriptions.
C++ Compared with Java.
Unions.
Bit Fields.
5. Ctors, Dtors, Conversions and
Operator Overloading.
Classes with Constructors.
Improving the point Class.
Constructing a Stack.
Classes with Destructors.
Members That Are Class Types.
Example: A Singly Linked List.
Strings Using Reference Semantics.
Constructor Issues and Mysteries.
Polymorphism.
Overloading and Function Selection.
Friend Functions.
Overloading Operators.
Unary Operator Overloading.
Binary Operator Overloading.
Overloading =, [ ] and ( ).
Overloading << and >>.
Overloading _>.
Overloading new and delete.
Software Engineering: Overloading.
Dr. P's Prescriptions.
C++ Compared with Java.
6. Templates and Generic Programming.
Template Class stack.
Function Templates.
Generic Code Development: Quicksort.
Class Templates.
Parameterizing the Class vector.
Using STL: string, vector and complex.
Software Engineering: Generics.
Dr. P's Prescriptions.
C++ Compared with Java.
7. Standard Template Library.
A Simple STL Example.
Containers.
Iterators.
Algorithms.
Numerical Integration Made Easy.
STL: Function Objects.
Allocators.
Software Engineering: STL Use.
Dr. P's Prescriptions.
C++ Compared with Java.
8. Inheritance and OOP.
A Derived Class.
A Student ISA Person.
Virtual Functions: How T is Dynamically
Determined.
Abstract Base Classes.
Templates and Inheritance.
Multiple Inheritance.
Inheritance and Design.
Runtime Type Identification.
Software Engineering: Inheritance.
Dr. P's Prescriptions.
C++ Compared with Java.
9. Input/Output.
The Output Class ostream.
Formatted Output and iomanip.
User-Defined Types: Output.
The Input Class istream.
Files.
Using Strings as Streams.
The Functions and Macros in ctype.
Using Stream States.
Mixing I/O Libraries.
Software Engineering: IO.
Dr. P's Prescriptions.
C++ Compared with Java.
10. Exceptions and Program Correctness.
Using the assert Library.
C++ Exceptions.
Throwing Exceptions.
try Blocks.
Handlers.
Converting Assertions to Exceptions.
Exception Specification.
terminate() and unexpected().
Standard Exceptions and Their Uses.
Software Engineering: Exception Objects.
Dr. P's Prescriptions.
C++ Compared with Java.
11. OOP Using C++.
OOP Language Requirements.
OOP: The Dominant Programming Methodology.
Designing with OOP in Mind.
Class-Responsibility-Collaborator.
Design Patterns.
Software Engineering: Last Thoughts.
Dr. P's Prescriptions.
C++ Compared with Java. |