Product Cover Image

Sams Teach Yourself C++ in One Hour a Day

By Siddhartha Rao

Published by Sams

Published Date: May 4, 2012

More Product Info

Description

Learn C++ in Just One Hour a Day

Completely updated for the C++11 standard, Sams Teach Yourself C++ in One Hour a Day presents the language from a practical point of view, helping you learn how to use C++11 to create faster, simpler, and more efficient C++ applications.

  • Master the fundamentals of C++ and object-oriented programming
  • Understand how C++11 features help you write compact and efficient code using concepts such as lambda expressions, move constructors, and assignment operators
  • Learn the Standard Template Library, including containers and algorithms used in most real-world C++ applications
  • Test your knowledge and expertise using exercises at the end of every lesson

Learn on your own time, at your own pace:

  • No previous programming experience required
  • Learn C++11, object-oriented programming, and analysis
  • Write fast and powerful C++ programs, compile the source code with a gcc compiler, and create executable files
  • Use the Standard Template Library’s (STL) algorithms and containers to write feature-rich yet stable C++ applications
  • Develop sophisticated programming techniques using lambda expressions, smart pointers, and move constructors
  • Learn to expand your program’s power with inheritance and polymorphism
  • Master the features of C++ by learning from programming experts
  • Learn C++11 features that allow you to program compact and high-performance C++ applications
TABLE OF CONTENTS


PART I: THE BASICS

LESSON 1: Getting Started with C++11

LESSON 2: The Anatomy of a C++ Program

LESSON 3: Using Variables, Declaring Constants

LESSON 4: Managing Arrays and Strings

LESSON 5: Working with Expressions, Statements, and Operators

LESSON 6: Controlling Program Flow

LESSON 7: Organizing Code with Functions

LESSON 8: Pointers and References Explained


PART II: FUNDAMENTALS OF OBJECT-ORIENTED C++ PROGRAMMING

LESSON 9: Classes and Objects

LESSON 10: Implementing Inheritance

LESSON 11: Polymorphism

LESSON 12: Operator Types and Operator Overloading

LESSON 13: Casting Operators

LESSON 14: An Introduction to Macros and Templates


PART III: LEARNING THE STANDARD TEMPLATE LIBRARY (STL)

LESSON 15: An Introduction to the Standard Template Library

LESSON 16: The STL String Class
LESSON 17: STL Dynamic Array Classes
LESSON 18: STL list and forward_list
LESSON 19: STL Set Classes
LESSON 20: STL Map Classes


PART IV: MORE STL

LESSON 21: Understanding Function Objects

LESSON 22: C++11 Lambda Expressions
LESSON 23: STL Algorithms
LESSON 24: Adaptive Containers: Stack and Queue
LESSON 25: Working with Bit Flags Using STL


PART V: ADVANCED C++ CONCEPTS

LESSON 26: Understanding Smart Pointers

LESSON 27: Using Streams for Input and Output
LESSON 28: Exception Handling
LESSON 29: Going Forward


APPENDIXES

A: Working with Numbers: Binary and Hexadecimal

B: C++ Keywords

C: Operator Precedence

D: Answers

E: ASCII Codes

Table of Contents

Sams Teach Yourself C++ in One Hour a Day

Covers C++11


PART I: THE BASICS


LESSON 1: Getting Started

A Brief History of C++

Programming a C++ Application

What's New in C++11

LESSON 2: The Anatomy of a C++ Program

Part of the Hello World Program

The Concept of Namespaces

Comments in C++ Code

Functions in C++

Basic Input Using std::cin and Output Using std::cout

LESSON 3: Using Variables, Declaring Constants

What Is a Variable?

Common Compiler-Supported C++ Variable Types

Determining the Size of a Variable Using sizeof

Using typedef to Substitute a Variable's Type

What Is a Constant?

Naming Variables and Constants

Keywords You Cannot Use as Variable or Constant Names

LESSON 4: Managing Arrays and Strings

What Is an Array?

Multidimensional Arrays

Dynamic Arrays

C-style Strings

C++ Strings: Using std::string

LESSON 5: Working with Expressions, Statements, and Operators

Statements

Compound Statements or Blocks

Using Operators

LESSON 6: Controlling Program Flow

Conditional Execution Using if … else

Getting Code to Execute in Loops

Modifying Loop Behavior Using continue and break

Programming Nested Loops

LESSON 7: Organizing Code with Functions

The Need for Functions

Using Functions to Work with Different Forms of Data

How Function Calls Are Handled by the Microprocessor

LESSON 8: Pointers and References Explained

What Is a Pointer?

Dynamic Memory Allocation

Common Programming Mistakes When Using Pointers

Pointer Programming Best-Practices

What Is a Reference?


PART II: FUNDAMENTALS OF OBJECT-ORIENTED C++ PROGRAMMING


LESSON 9: Classes and Objects

The Concept of Classes and Objects

Keywords public and private

Constructors

Destructor

Copy Constructor

Different Uses of Constructors and Destructor

this Pointer

sizeof() a Class

How struct Differs from class

Declaring a friend of a class

LESSON 10: Implementing Inheritance

Basics of Inheritance

Private Inheritance

Protected Inheritance

The Problem of Slicing

Multiple Inheritance

LESSON 11: Polymorphism

Basics of Polymorphism

Using virtual Inheritance to Solve the Diamond Problem

Virtual Copy Constructors?

LESSON 12: Operator Types and Operator Overloading

What Are Operators in C++?

Unary Operators

Binary Operators

Function Operator ()

Operators That Cannot Be Overloaded

LESSON 13: Casting Operators

The Need for Casting

Why C-Style Casts Are Not Popular with Some C++ Programmers

The C++ Casting Operators

Problems with the C++ Casting Operators

LESSON 14: An Introduction to Macros and Templates

The Preprocessor and the Compiler

Using #define Macros to Define Constants

Using #define To Write Macro Functions

An Introduction to Templates


PART III: LEARNING THE STANDARD TEMPLATE LIBRARY (STL)


LESSON 15: An Introduction to the Standard Template Library

STL Containers

STL Iterators

STL Algorithms

The Interaction Between Containers and Algorithms Using Iterators

STL String Classes

LESSON 16: The STL String Class

The Need for String Manipulation Classes

Working with the STL String Class

LESSON 17: STL Dynamic Array Classes

The Characteristics of std::vector

Typical Vector Operations

Understanding the Concepts of Size and Capacity

The STL deque Class

LESSON 18: STL list and forward_list

The Characteristics of a std::list

Basic list Operations

Reversing and Sorting Elements in a List

LESSON 19: STL Set Classes

An Introduction to STL Set Classes

Basic STL set and multiset Operations

Pros and Cons of Using STL set and multiset

LESSON 20: STL Map Classes

An Introduction to STL Map Classes

Basic std::map and std::multimap Operations

Supplying a Custom Sort Predicate


PART IV: MORE STL


LESSON 21: Understanding Function Objects

The Concept of Function Objects and Predicates

Typical Applications of Function Objects

LESSON 22: C++11 Lambda Expressions

What Is a Lambda Expression?

How to Define a Lambda Expression

Lambda Expression for a Unary Function

Lambda Expression for a Unary Predicate

Lambda Expression with State via Capture Lists

The Generic Syntax of Lambda Expressions

Lambda Expression for a Binary Function

Lambda Expression for a Binary Predicate

LESSON 23: STL Algorithms

What Are STL Algorithms?

Classification of STL Algorithms

Usage of STL Algorithms

LESSON 24: Adaptive Containers: Stack and Queue

The Behavioral Characteristics of Stacks and Queues

Using the STL stack Class

Using the STL queue Class

Using the STL Priority Queue

LESSON 25: Working with Bit Flags Using STL

The bitset Class

Using std::bitset and Its Members

The vector


PART V: ADVANCED C++ CONCEPTS


LESSON 26: Understanding Smart Pointers

What Are Smart Pointers?

How Are Smart Pointers Implemented?

Types of Smart Pointers

Popular Smart Pointer Libraries

LESSON 27: Using Streams for Input and Output

Concept of Streams

Important C++ Stream Classes and Objects

Using std::cout for Writing Formatted Data to Console

Using std::cin for Input

Using std::fstream for File Handling

Using std::stringstream for String Conversions

LESSON 28: Exception Handling

What Is an Exception?

What Causes Exceptions?

Implementing Exception Safety via try and catch

How Exception Handling Works

LESSON 29: Going Forward

What's Different in Today's Processors?

How to Better Use Multiple Cores

Writing Great C++ Code

Learning C++ Doesn't Stop Here!


APPENDIXES

A: Working with Numbers: Binary and Hexadecimal

B: C++ Keywords

C: Operator Precedence

D: Answers

E: ASCII Codes

Purchase Info

ISBN-10: 0-13-278651-6

ISBN-13: 978-0-13-278651-5

Format: Safari PTG

This publication is not currently for sale.