Links

Return to Computer Science Links Page

ANSI Standard

GNU

G++ for Win32
DJGPP (recommended)

Copy and Paste from a Console Window

Final Exam Review

VC++ Bugs

"using namespace std" before friend operator
Addendum
GRID.CPP
GRID.H
Contents

1. Basics

Variables, Values, and Types   1-1

Statements   1-2

Streams   1-5

Example: Computing Future Values   1-7

2. Control

Selection   2-1

Blocks   2-4

Example: Computing Progressive Tax   2-5

Iteration   2-6

Input Streams   2-8

The for Loop   2-12

Example: Counting the Number of Ways to Choose   2-13

3. Composite Values and Variables

Arrays   3-1

Pointers   3-2

Vectors   3-7

Characters   3-8

C Strings   3-10

C++ Strings   3-12

File Streams   3-15

4. Separate Compilation

Header Files   4-2

Standard Library Headers   4-6

The One-Definition Rule (ODR)   4-8

Problems   4-12

5. Programming with Functions

Modularity and Abstraction   5-1

Procedural Programming   5-2

Top Down Design   5-3

The Stack Model for Function Calls   5-8

Inline Functions   5-9

Parameter Passing mechanisms   5-9

Overloading   5-14

Function Templates   5-15

Example: Vector Arithmetic   5-16

Improving the Interpreter   5-19

String Streams   5-21

Another Interpreter   5-22

Problem: Blackjack   5-25

Recursive Functions   5-29

6. Programming with Objects

Narrowing the Semantic Gap   6-1

Objects   6-4

Classes

Scope Control

Member Functions

Constructors

Copying Objects

Inline Member Functions

The Implicit Parameter

Static Members

Destructors

Initializer Lists

Friends

UML Notation

Problems   6-23

7. Derived and Inner Classes

Derived Classes   7-1

Upcasting and Downcasting

Derived Class Constructors

More UML Notation

Multiple Inheritance

Inner Classes   7-9

Problems   7-11

8. Operator Overloading

Overloading Arithmetic Operators   8-1

Overloading Type Conversion Operators   8-4

Overloading Insertion and Extraction Operators   8-5

Safe Strings   8-6

Functors   8-8

Allocators   8-10

Problems   8-13

9. Polymorphism

Example   9-2

Virtual Function Tables   9-7

Abstract Classes   9-8

The Alternative: user-defined type tags   9-9

Frameworks and Template Methods   9-10

Problems   9-17

10. Templates and Exceptions

Templates   10-1

Exceptions   10-3

Problems   10-11

11. Handle-Body Idioms

Applications   11-1

Orthodox Canonical Form   11-4

Smart Pointers   11-7

Vectors   11-13

Counted Pointer Idiom   11-19

Envelope-Letter Idiom   11-27

12. Strings

Characters   12-1

C Strings   12-2

C++ Strings   12-5

Custom Strings   12-9

13. Streams

Output Streams   13-1

Input Streams   13-5

Stream Structure   13-14

Format State   13-17

14. STL

Container Classes   14-1

The Standard Template Library   14-2

Iterators

STL Containers

Sequences

Maps

Adapters

15. Linked Lists

Problem   15-1

Solution   15-1

Static Structure   15-2

Implementation   15-3

Problem   15-13

16. Functors

Binders   16-3

Adapters   16-4

Function Adapters   16-5

Callables   16-6

17. Algorithms

The Pipe and Filter Design Pattern   17-1

Finders   17-2

for_each()   17-4

Conditionals   17-7

Transformers   17-8