Lecture Material
Click here to see the tentative syllabus.
For the actual material covered, see below.
· A journey from POP to OOP using the C language
§
A sample procedural design (sample program)
§
Modular programming (sample program)
§
Abstract Data Types (sample program)
§
Enumerated types
(sample
program)
·
Introducing
"non Object Oriented" C++ features
§
Basic I/O
§
References
§
Constants
§
Dynamic Memory Management
§
Namespaces
§
Function overloading
§
Default Parameters
§
Inline (towards eliminating macros)
§
Bool and string
· Basic Object Oriented features of C++
§
Classes
§
Member Functions
§
Data Members and Encapsulation
§
Constructors
§
Destructor (sample program)
§
Static Members (sample program)
§
The String Class (sample program) (A comprehensive ppt)
·
Constructors and Destructors
§
Constructor Initializer
§
Default Constructor
§
Conversion Constructor
§
Copy Constructor
§
Destructor
·
More
Object Oriented Features in C++
§
Friends
§
Operator Overloading (sample
program)
§
Smart Pointers
§
Proxy Classes
§
More on stream IO
·
Linked Lists
§
A linked list of integers (sample program)
§
A sorted linked list of integers (sample program)
§
Basic concepts: Code
reuse, base classes, super classes.
§
Data hiding: protected access mode.
§
Constructors and Destructors in inheritance.
§
Inheritance access mode (public/private – is a, is
implemented by)
§
Containment vs. private inheritance.
§
Virtual functions
§
vtable and vptr
§
pure virtual functions
§
multiple inheritance
§
RTTI
§
Casting
§
The price of
polymorphism
§
Comparison of the C++ approach to the Java approach
§
Template functions
§
Template classes
§
A Binary Search Tree
implementation
§
Template Class
Specialization
§
Method Templates
§
Default Template
Parameters
§
Non-type Template
Parameters
§
A comprehensive STL tutorial