Advanced C++ Programming

Advanced C++ Programming

This course broadens the skills of a C++ language programmer by examining sophisticated modern C++ concepts such as templates, auto variables,  exceptions, memory management, smart pointers advanced inheritance issues, disambiguation of overloaded functions, private and protected inheritance, binary i/o and class libraries, Lambda function.

Module 1 – What You Should Already Know (Brief review)

  • The language of Object Orientation
  • A typical C++ class, a string class
  • Issues regarding member functions 
  • Relationships 
  • Simple C++ I/O 
  • The uses of const

 

Module 2 – Parameterized Types: Templates

  • Templates 
  • Name space
  • Overloading functions  
  • Template functions 
  • Specializing a template function 
  • Disambiguation under specialization 
  • Template classes 
  • An array template class 
  • Instantiating a template class object 
  • Rules for templates 
  • Non member function w/ a template argument 
  • Friends of template classes 
  • Templates with multiple type parameters 
  • Comments regarding templates

 

Module 3 – Relations of All Kinds

  • Uses of Member Initialization Lists 
  • Initialization lists under composition and under inheritance
  • Initialization lists w/ Multiple Inheritance (MI)
  • Initialization with MI and composition 
  • Efficiency 
  • Constructors and composition 
  • Designing for inheritance 
  • Public inheritance and Private inheritance 
  • Private inheritance vs. composition 
  • Using relationships 
  • Associations

 

Module 4 – Multiple Inheritance, Abstract, Pure virtual functions

  • Multiple inheritance Overview
  • Ambiguities 
  • Virtual base classes 
  • Member initialization lists with MI 
  • Designing for inheritance

 

Module 5 – Data Structures

  • Introduction to Data Structure
  • A simple List 
  • Implementation of the list functions 
  • Layering type safe classes upon List 
  • A template List class 
  • Iterators 
  • A template iterator 
  • Stack and Queue classes 
  • Vectors, auto
  • Lambda function – predicates
  • A derived template array class

 

Module 6 – Function Pointers

  • Why have function pointers? 
  • Smart pointers – advantages
  • Passing functions as arguments 
  • Registering functions 
  • Auto in function – return value
  • Auto iterator
  • Callback functions 
  • A class with a callback object 
  • Registration of exceptions handlers

 

Module 7 – Exceptions

  • What are exceptions? 
  • Traditional approaches to error handling 
  • A simple exception handler 
  • Multiple catch blocks 
  • The exception specification list 
  • Re-throwing an exception 
  • Cleanup 
  • Exception matching 
  • Inheritance and exceptions 
  • Resource allocation 
  • Constructors and exceptions 
  • Destructors and exceptions 
  • Catch by reference 
  • Standard exceptions

 

Module 8 – The C++ Standard Template Library

  • New features 
  • The Standard Template Library 
  • STL Components 
  • Iterators 
  • Examples: vector, list, set, map, find, merge, accumulate
  • Function objects 
  • Adaptors
  • Ambiguities

 

Module 10 – File I/O

  • Error checking 
  • Overloading << and >> 
  • Formatted I/O 
  • Disk files 
  • Examples of seekg, tellg, and close 
  • Reading and writing objects to the disk 
  • Internal transmission of data 
  • A larger I/O example: Spell checker 
  • Treating a file as an array

Experience in C++ Programming

5 days (40 hours)

השתתפות ב80% מהקורס

לשיחה / תאום פגישה עם יועץ לימודים:

  • הנני מעוניין/ת שנציג של מכללת אינטרביט יצור עימי קשר וישלח לי מידע רלוונטי על קורסים והשתלמויות של המכללה