C++ Training Course
This course explores the basic to intermediate level topics of C++. It starts off with the introduction to C++. Then it throws some light on the basic constructs of C++, that is, arrays, pointers, structures and classes. The course then progresses unveiling some of the object-oriented concepts in C++ like inheritance, aggregation, overloading and polymorphism. It further discusses the exception handling mechanism in C++. There are a couple of units dedicated to C++ templates, using the standard template library, including the Iostream Library. Towards the end, advanced topics and concepts such as smart pointers and design patterns are discussed. The final topic of the course is areas differentiating C++ and Java, using examples to explain the differences.
Audience:
The C++ course is designed for the professionals who have adequate knowledge of the Java language, with a basic know how of C language. As this is an intermediate level course in C++, therefore a previous working C++ Language experience will facilitate in completing this course with ease.
Objectives:
The course objective is to help the audience develop C++ applications rapidly and efficiently.
Course Units (Click to download the slides):
Unit 01: Introduction to C++
- Introduction to C++
- Program structure in C++
- Data types
- Specifiers and modifiers
- Scope and storage allocation
- Operators
- Functions
Unit 02: Arrays and Pointers
- Arrays in C++
- Pointers in C++
- Using pointers
- Pointer Arithmetic
- Pointer constants, variables and strings
- Function Pointers
Unit 03: Structures Classes and Objects
- Structures
- Classes
- Static data and member functions
- Differences between structures and classes
- References
- Friend functions and classes
Unit 04: Inheritance and Composition
- Composition
- Inheritance
- Inheritance & constructor call sequence
- Multiple inheritance
- Upcasting & inheritance
- C++ casting operators
- Different types of Inheritance
- Inheritance vs Composition
Unit 05: Function Overloading
- Function overloading
- Function overloading
- By type of argument
- By different number of arguments
- Default arguments
Unit 06: Operator Overloading
- Operator overloading
- Different types of operator and their overloading
- Operators that cannot be overloaded
- Inheritance and overloading
- Automatic type conversion
Unit 07: Polymorphism and Virtual Functions
- Polymorphism and its different types
- Early vs. late binding
- Virtual functions
- Abstract base classes and pure virtual functions
- Virtual base class
- Virtual destructors
Unit 08: Exception Handling
- Exception handling
- Throwing exceptions
- Catching an exception
- Termination vs. Resumption
- Exception specification
- Uncaught exception
- Exception objects
Unit 09: Templates
- Templates
- Different types of templates
- Template instantiation
- Template specialization
Unit 10: Iostream Library
- IOStream library
- File operations
- Buffering operations
- Seeking operations
- Output stream formatting
- IOStream manipulators
- Creating manipulators
Unit 11: Standard Template Library
- Standard template library
- String library
- IOStream library
- General template library
- STL containers and iterators
- STL algorithms
Unit 12: Smart Pointers
- Smart pointers
- Why smart pointers are used
- Different types of smart pointer
Unit 13: Design Patterns
- What are design patterns
- Singleton design pattern
- Factory design pattern
- Proxy design pattern
- Facade design pattern
Unit 00: Areas differentiating C++ and Java
- Program Structure
- Console input/output
- Data Types
- Arrays
- Pointers
- Parameter Passing
- Exception Handling
- Inheritance
- Polymorphism
- Memory Management

