Advanced C++ Programming Workshop (With C++11, C++14, C++17) & Design Patterns This Advanced C++ Programming training course is a comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C. We have also included new C++ 11,14,17 additions at the respective topics. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C. The second module covers advanced C++ Programming issues of inheritance and polymorphism and the principles of effective class design. The third module introduces the Standard Template Library (STL). Duration : 5 full days Detailed Table of Content Concepts of Object Oriented Programming Basics Object Oriented Design Concepts Benefits of Object Oriented Programming Applications of Object Oriented Programming Basic Concepts Basics Object Oriented Design Concepts Types - Fundamental types Object - Scope Lifetime Memory model Operators
sizeof - alignof(c++11) typeid new delete Operator precedence Literals boolean - integer - floating character - string C++ 11 additions nullptr (C++11) user-defined (C++11) const/volatile - constexpr(c++11) decltype(c++11) auto(c++11) alignas(c++11) typedef - Type alias(c++11) Attributes(C++11) static_assert(c++11) Initialization Default initialization Value initialization(c++03) Copy initialization Direct initialization Aggregate initialization List initialization(c++11) Reference initialization Constant initialization Functions Function overloading Default arguments
Choosing Between Default Values and Overloaded Functions Variadic arguments Lambda expression(c++11) inline specifier Returning Values by Reference Passing by Reference for Efficiency Passing a const Pointer References as an Alternative const References Mixing References and Pointers Implementing Classes and Objects Concepts of Classes and Objects, Implementing Class and objects Access Specifies Concept of Public, Private Static variables and member functions Constant Member functions Dynamic Objects and Pointer to Member functions Implementation and hands on session Static members of a Class Static data members Static member functions A discussion on Singleton pattern Constructors and Destructors Usage of Constructors Multiple Constructors, concept of copy-constructor Default Constructor Destructors const Member Functions Implementation and hands on session
Implementing Inheritance Concept and need for Derived classes Private, Protected & Public Inheritance Implementing Single, Multiple, Multilevel Inheritance Role of constructors and destructors in inheritance Passing Arguments to Base Constructors Inheritance and constructor: base class Inheritance and constructor: derived class Inheritance and copy constructor: base class Inheritance and copy constructor: derived class Inheritance and destructor: base class Inheritance and destructor: derived class Passing Arguments to Base Constructors Implementation and hands on session Polymorphism Operator Overloading Concept of Operator Overloading Overloading of binary, unary, and other operators Rules of Operator Overloading Conversion operators this Pointer, pointer to objects Runtime Polymorphism, Virtual Functions & Dynamic Binding Pointers & Classes Pointers to Class Members Method overriding Base class pointers & derived class objects Concept of Virtual Functions Virtual functions & base class pointers Virtual functions & base class reference Dynamic Binding v/s Early Binding
Pure virtual functions Virtual destructors Abstract Class( pure Virtual Functions) Friend Communication or bridging between diff. classes Friend Classes Friend Functions Exception Handling in C++ What are Exceptions Handling Exceptions in C++ - try, catch, throw Rethrow Exception vs function calls Exception Specification. Function try Block Uncaught exceptions Unexpected exceptions The terminate( ) function Implementation and hands on session noexcept specifier(c++11) noexcept operator(c++11) Namespaces Handling scopes Nested namespaces Avoiding name mangling Anonymous namespaces The Casting operators Typeid() const_cast
static_cast reinterpret_cast dynamic_cast C++ I/O Streams Introduction to Streams C++ Stream Classes I/O operations using iostreams Using cin.ignore() peek() and putback() Output with cout Flushing the Output Manipulators, Flags, and Formatting Instructions Using cout.width() Setting the Fill Characters Set Flags Concepts of Templates Implementing Template functions and classes Templates with Exception Handling Typename Class Template Member Specialization Template Parameters Member Templates explicit instantiation Variable template(c++14) Template argument deduction template Specialization Explicit specialization Partial specialization Parameter packs(c++11) - sizeof...(c++11) Fold-expessions(C++17)
Dependent names SFINAE File Handling Definition of file File handling in C++ Doing read, write operation in files New Additions in C++ C++ 11 additions C++ 14 additions C++ 17 additions The Standard Library (STL) - Introducing the Standard Template Library STL containers STL algorithms STL iterators Design Patterns in C++ Creational Patterns Abstract Factory Builder Factory Type Prototype Singleton Structural Patterns Adapter Bridge Composite Decorator Fac ade
Flyweight Proxy Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Statergy Template Method Visitor * * * * * * * *