Introduction to C++
Mario Giannini
mario@openroad.org



 Text

C++ From the Ground Up by Schildt

The C++ Programming Language by Stroustrup

 Tests  There will be 2 tests, a take-home midterm, and a final exam. Review will be provided for each.
 Homework  Handed in on printout, no disks unless specifically asked for.
 Grading

Grading is broken down as follows:

Midterm/Final 45%
Project 30%
Homework 15%
Participation 10%

Grades are on an Honors/Pass/Fail basis. The breakdown is:

98-100 Honors
65-97 Pass
0-64 Fail

No 'upgrades' will be permitted for homeworks, or assignments unless previously agreed upon with instructor. No more than two homework assignments will be accepted from a student on the final day of class.

  Goals The goal of this class is to form a solid understanding of the C++ programming language, and object oriented programming concepts. Real-world examples and solutions will be presented and discussed with an emphasis on comprehension. C and C++ distinctions will also be covered, as will MS-DOS specific I/O routines.






 Class Description
 1

Introduction

Review of programming concepts (Using C)
Introduction to OOP
Why OOP
Stages of programming: Tasks, Functions, Objects
Development Stages
Identify the job at hand
Modeling after the real world
Representing Relationships and Objects
2

Changes from C in C++

cin and cout
Data declarations
C items to avoid using
C as a subset of C++


Objects

Behavior
Interaction
Classification
Polymorphism
Inheritance/Hierarchy
3

Classes

Declaration
Constructors
Destructors
Copy constructors
Function interaction
Object Oriented Programming
Abstraction
Encapsulation
Information Hiding
Messaging
4

Classes (continued)

Static/Class-Common data
Other class types: Pointers, arrays
this
C++ Memory management
new and delete
constructor/destructor invoking
5

Object Oriented Programming

Structured Analysis and Design
Phases of Project Development
Analyse
Design
Implement
Test
Common stages of design (1 to 2 to 3 then back to 2)
6

Class Inheritance

Constructors
Controlling the Scope of Methods
Visibility Issues
Multiple Inheritance
Object Oriented Programming
Inheritance benefits and draw backs
7

Operator Overloading

Return values
Temporary class creations
Arithmetic operators
Data conversions
 
8

Friends

Friend classes and functions
Virtual Functions
Virtual functions
Pure virtual functions
Abstract Classes
Object Oriented Programming
The Booch method
9

Files and I/O

Streams
Text Modes
Reading and writing class instances
Random access files
10

Templates

Function Templates
Class Templates
Inheritance Using Templates


Object Oriented Programming

Testing Procedures
Class Testing and self-testing
Integration Testing

Testing Cycle
11

Containers

Constructing and Maintaining a Class Library
Object Oriented Programming
Managing Object-Oriented Projects
Risks
12

Constructing an Application
Object Oriented Programming

Case Study - Black Jack