C++ is a general-purpose object-oriented programming language that offers portability, speed, and modularity, as well as compatibility with C and other languages. Because most automation, embedded applications, gaming, and many large data processing applications are written in C++, it is essential that software developers understand and master it. Hardware engineers are increasingly using C++ and OOP in system verification tasks. This course offers an excellent foundation in developing optimized C++ applications. The participants will learn to write faster and modular code, and the debugging techniques, for real-world applications. There will be assignments and exercises to accompany the lectures.
- Principles of object-oriented analysis and design
- Stream classes for input/output and to read/write files
- User defined data types using structures and classes
- Declarations of identifiers, pointers, function pointers and references
- Reuse code and extend existing data types through inheritance
- Memory management and dynamic array declarations
- Create class/function templates and understand STL
- Use static member variables and static member functions
- Singleton design pattern using static member functions
- Declare friend functions and friend classes
- Function overloading and operator overloading
- Polymorphism concept using virtual function
- Understand exceptions handling techniques using try/catch syntax
Note(s): Students must have access to a C++ compiler.
Skills Needed: Experience with a high level programming language such as C. Advanced C programming is recommended.