| |
|
|
C++ and Object-Oriented Programming
For several years I taught an Introduction to C++ and OOP class at the University of California, Riverside
extension office. Below is the material that I wrote for this
course. Feel to use the material for non-commercial purposes.
Please do not modify it without my permission.
This course assumes that you already know the C language, so
the basics, such as flow of control, data types, etc., are not covered
in detail.
The text used for this class is Bruce Eckel's Thinking in C++, 2nd
Edition which you can download from his web site.
If you are interested in testing your knowledge by taking the
Mid-Term or Final exams, please contact me. The labs assume that
you are using MS Visual Studio (C++).
| |
| |
|
Lecture |
Reading - topics from Thinking in C++
|
Lab |
| C++ - A Better C |
The C in C++, Pointers in C++, References in C++,
Preprocessor pitfalls, Namespaces, Object creation,Value
substitution, Pointers, Function arguments & return values |
Lab 1 |
| OOP & Intro
to Classes |
Hiding the Implementation, The process of
abstraction, An object has an interface, Analysis and design,
Tools for separate compilation, Your first C++ program, More
about iostreams, Introducing strings |
Lab 2
Lab2.c |
| More on Classes |
Initialization & Cleanup, What's an object?, Abstract data
typing, Classes, The copy-constructor, Static members in C++,
Object creation, Introducing vector, Strings |
Lab 3 |
| Stream I/O (iostreams) |
Reading and writing files, Iostreams |
Extra Credit |
| Operator Overloading |
Operator Overloading |
Lab 4
Lab4.h |
| Inheritance |
Inheritance & Composition |
Lab 5 |
| Polymorphism |
Polymorphism & Virtual Functions |
Lab 6 |
| Templates |
Introduction to Templates |
Lab 7
Stack.h |
| Exception Handling |
Exception Handling |
Lab 8 |
| Standard Template Library |
STL Containers & Iterators |
|
|
|