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

(sample program)

 

·       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)

 

·       Inheritance

§         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.

 

·       Polymorphism

§         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

 

·       Templates

§         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

 

·       Exceptions