Upon completion of this course, participants will be able to:
- See Object Oriented Programming (OOP) as a better way of writing more maintainable, reunsable and extensible code
- Understand the cornerstones of OOP: Classes, Objects, Data Encapsulation, Data Hiding, Data Abstraction, Polymorphism, Inheritance and Message Passing
- Appreciate the advantages of using C++ over C, including inline functions, default arguments, references, type checking, anonymous unions and enums, etc.
- Model real world entities in the form of classes and define their behaviour
- Define and understand terms like function overloading, function overriding, constructors, destructors, static members, constant members, private and public members, protected members, friends, member initialization lists, mutable members, etc.
- Use improved memory management with new and delete
- Overload operators and teach the compiler how to perform operations
- Extend and reuse classes using Inheritance
- Implement dynamic polymorphism using virtual functions
- Understand the so-called dreaded diamond problem and solve it using virtual base classes and virtual inheritance
- Use streams as a replacement to buffers to format and perform I/O and file operations
- Deal with exceptions and create your own exception classes and objects and handle them
- Work with templates to create generic functions and generic data types