Table of Contents

Introduction

1 Getting Started with C++

Learning C++: What Lies Before You

The Origins of C++: A Little History

Portability and Standards

The Mechanics of Creating a Program

Summary

2 Setting Out to C++

C++ Initiation

C++ Statements

More C++ Statements

Functions

Summary

Chapter Review

Programming Exercises

3 Dealing with Data

Simple Variables

The const Qualifier

Floating-Point Numbers

C++ Arithmetic Operators

Summary

Chapter Review

Programming Exercises

4 Compound Types

Introducing Arrays

Strings

Introducing the string Class

Introducing Structures

Unions

Enumerations

Pointers and the Free Store

Pointers, Arrays, and Pointer Arithmetic

Combinations of Types

Array Alternatives

Summary

Chapter Review

Programming Exercises

5 Loops and Relational Expressions

Introducing for Loops

The while Loop

The do while Loop

The Range-Based for Loop (C++11)

Loops and Text Input

Nested Loops and Two-Dimensional Arrays

Summary

Chapter Review

Programming Exercises

6 Branching Statements and Logical Operators

The if Statement

Logical Expressions

The cctype Library of Character Functions

The ?: Operator

The switch Statement

The break and continue Statements

Number-Reading Loops

Simple File Input/Output

Summary

Chapter Review

Programming Exercises

7 Functions: C++’s Programming Modules

Function Review

Function Arguments and Passing by Value

Functions and Arrays

Functions and Two-Dimensional Arrays

Functions and C-Style Strings

Functions and Structures

Functions and string Class Objects

Functions and array Objects

Recursion

Pointers to Functions

Summary

Chapter Review

Programming Exercises

8 Adventures in Functions

C++ Inline Functions

Reference Variables

Default Arguments

Function Overloading

Function Templates

Summary

Chapter Review

Programming Exercises

9 Memory Models and Namespaces

Separate Compilation

Storage Duration, Scope, and Linkage

Namespaces

Summary

Chapter Review

Programming Exercises

10 Objects and Classes

Procedural and Object-Oriented Programming

Abstraction and Classes

Class Constructors and Destructors

Knowing Your Objects: The this Pointer

An Array of Objects

Class Scope

Abstract Data Types

Summary

Chapter Review

Programming Exercises

11 Working with Classes

Operator Overloading

Time on Our Hands: Developing an Operator Overloading Example

Introducing Friends

Overloaded Operators: Member Versus Nonmember Functions

More Overloading: A Vector Class

Automatic Conversions and Type Casts for Classes

Summary

Chapter Review

Programming Exercises

12 Classes and Dynamic Memory Allocation

Dynamic Memory and Classes

The New, Improved String Class

Things to Remember When Using new in Constructors

Observations About Returning Objects

Using Pointers to Objects

Reviewing Techniques

A Queue Simulation

Summary

Chapter Review

Programming Exercises

13 Class Inheritance

Beginning with a Simple Base Class

Inheritance: An Is-a Relationship

Polymorphic Public Inheritance

Static and Dynamic Binding

Access Control: protected

Abstract Base Classes

Inheritance and Dynamic Memory Allocation

Class Design Review

Summary

Chapter Review

Programming Exercises

14 Reusing Code in C++

Classes with Object Members

Private Inheritance

Multiple Inheritance

Class Templates

Summary

Chapter Review

Programming Exercises

15 Friends, Exceptions, and More

Friends

Nested Classes

Exceptions

Runtime Type Identification

Type Cast Operators

Summary

Chapter Review

Programming Exercises

16 The string Class and the Standard Template Library

The string Class

Smart Pointer Template Classes

The Standard Template Library

Generic Programming

Function Objects (a.k.a. Functors)

Algorithms

Other Libraries

Summary

Chapter Review

Programming Exercises

17 Input, Output, and Files

An Overview of C++ Input and Output

Output with cout

Input with cin

File Input and Output

Incore Formatting

Summary

Chapter Review

Programming Exercises

18 Visiting with the New C++ Standard

C++11 Features Revisited

Move Semantics and the Rvalue Reference

New Class Features

Lambda Functions

Wrappers

Variadic Templates

More C++11 Features

Language Change

What Now?

Summary

Chapter Review

Programming Exercises

Appendixes

A Number Bases

B C++ Reserved Words

C The ASCII Character Set

D Operator Precedence

E Other Operators

F The string Template Class

G The Standard Template Library Methods and Functions

H Selected Readings and Internet Resources

I Converting to ISO Standard C++

J Answers to Chapter Reviews

Index

Загрузка...