Video description
C++ Fundamentals I and IIis for professional
software developers who are not familiar with C++ and
object-oriented programming. In this two-part video LiveLesson,
distinguished programming languages author and professional teacher
Paul Deitel uses the Deitel’s signature live-code approach to
introduce C++ fundamentals, object-oriented programming and
event-driven programming. The Deitel’s early classes and objects
approach immerses the learner in object-oriented programming from
the start. All concepts are presented in the context of
complete-working programs using C++ and Microsoft’s Visual C++ 2008
Express version of its Visual Studio 2008 (Orcas) tools.
Table of Contents
Dive into Visual Studio 2010
Dive into Visual Studio 2010
Dive into GNU C++ Compiler
Dive into GNU C++ Compiler
C++ Fundamentals - Part 1
Part 1 Learning Objectives
Lesson 1: Introduction to C++ Programming
Learning Objectives
Text printing program
Comparing integers using if statements, relational operators and equality operators
Lesson 2: Introduction to Classes and Objects
Learning Objectives
Defining a class with a member function
Defining a member function with a parameter
Data members, set functions and get functions
Initializing objects with constructors
Placing a class in a separate file for reusability
Separating interface from implementation
Validating data with set functions
Lesson 3: Control Statements: Part 1
Learning Objectives
GradeBook: Calculating the class average with counter-controlled repetition
GradeBook: Calculating the class average with sentinel-controlled repetition
Preincrementing and postincrementing
Lesson 4: Control Statements: Part 2
Learning Objectives
Compound interest calculations with the for statement
do..while repetition statement
GradeBook: Using the switch statement to count letter grades
The break and continue statements
Logical operators
Lesson 5: Functions
Learning Objectives
Promotion hierarchy for fundamental data types
Simulating the dice game Craps
Scope rules
inline functions
Passing arguments by value and by reference
Default arguments to a function
Unary scope resolution operator
Overloaded square functions
Function templates
Lesson 6: Arrays and Vectors
Learning Objectives
Initializing an array’s elements to zeros and printing the array
Initializing the elements of an array in its declaration
Character arrays processed as strings
static array initialization and automatic array initialization
Passing arrays and individual array elements to functions
GradeBook: Using an array to store grades
Initializing multidimensional arrays
GradeBook: Using a two-dimensional array to store grades
C++ Standard Library class template vector
Lesson 7: Pointers and Pointer-Based Strings
Learning Objectives
Introduction to pointers
Pointer operators and *
Pass-by-value vs. pass-by-reference with pointers
Converting a string to uppercase using a nonconstant pointer to nonconstant data
Printing a string one character at a time using a nonconstant pointer to constant data
Attempting to modify a constant pointer to nonconstant data
Attempting to modify a constant pointer to constant data
Using the sizeof operator
Referencing array elements with the array name and pointers
Multipurpose sorting program with function pointers
Array of pointers to functions
Lesson 8: Classes: A Deeper Look, Part 1
Learning Objectives
Time class definition
Class scope and accessing class members
Enhancing the Time class with set and get method and a constructor with default arguments
Order in which constructors and destructors are called
A subtle trap–returning a reference to a private data member
Default memberwise assignment
Lesson 9: Classes: A Deeper Look, Part 2
Learning Objectives
const objects and const member functions
Member initializer used to initialize a constant of a built-in data type
Composition: Objects as members of classes
friends can access private members of a class
Using the this pointer
Using the this pointer to enable cascaded function calls
static class members
C++ Fundamentals - Part 2
Part 2 Learning Objectives
Lesson 10: Operator Overloading: String and Array Objects
Learning Objectives
Overloaded stream insertion and stream extraction operators
Case Study: Array class
Case Study: Array class
Case Study: String class
Case Study: Date class
Standard library class string
Explicit constructors
Lesson 11: Object-Oriented Programming: Inheritance
Learning Objectives
CommunityMember and Shape class hierarchies
ComissionEmployee class
BasePlusCommissionEmployee class
Attempting to inherit from the CommissionEmployee class into the BasePlusCommissionEmployee class
CommissionEmployee-BasePlusCommissionEmployee hierarchy with protected data
CommissionEmployee-BasePlusCommissionEmployee hierarchy with private data
When constructors and destructors in a class hierarchy are called
Lesson 12: Object-Oriented Programming: Polymorphism
Learning Objectives
Assigning addresses of base-class and derived class objects to base-class and derived-class pointers
Aiming a derived-class pointer at a base-class object
Attempting to invoke derived-class-only functions via a base-class pointer
Demonstrating polymorphism by invoking a derived-class virtual function via base-class pointer to a derived-class object
Case Study: Payroll system using polymorphism
Polymorphism, virtual functions and dynamic binding “under the hood”
Case Study: Payroll system using polymorphism and runtime type information with dynamic_cast, typeid and type_info
Lesson 13: Templates
Learning Objectives
Function template specializations of function template printArray
Building a Stack class template
Passing a Stack template object to a function template
Lesson 14: Exception Handling
Learning Objectives
Exception handling example that throws exceptions on attempts to divide by zero
Rethrowing an exception
Stack unwinding
new throwing bad_alloc on failure
set_new_handler specifying the function to call when new fails
auto_ptr object manages dynamically allocated memory
Lesson 15: STL Overview and an Introduction to Iterators
Learning Objectives
Standard library container classes
STL container common functions
typedefs found in first-class containers
Input and output stream iterators
Iterator categories and the iterator category hierarch
Iterator types supported by each Standard Library container
Iterator operations for each type of iterator
Lesson 16: STL Containers and Container Adapters
Learning Objectives
Standard Library vector class template
vector class template element-manipulation functions
Standard Library list class template
Standard Library deque class template
Standard Library multiset class template
Standard Library set class template
Standard Library multimap class template
Standard Library map class template
Standard Library stack adapter class
Standard Library queue adapter class
Standard Library priority_queue adapter class
Lesson 17: STL Algorithms, the Bitset Class, and Function Objects
Learning Objectives
fill, fill_n, generate and generate_n algorithms
equal, mismatch and lexicographical_compare algorithms
remove, remove_if, remove_copy and remove_copy_if algorithms
replace, replace_if, replace_copy and replace_copy_if
Mathematical algorithms of the Standard Library
Basic searching and sorting algorithms of the Standard Library
copy_backward, merge, unique and reverse algorithms
inplace_merge, unique_copy and reverse_copy algorithms
set operations of the Standard Library
lower_bound, upper_bound and equal_range algorithms
min and max algorithms
bitset class
Function objects