C++ for C Programmers and What's New in C++11

מק"ט: #6056 | משך קורס: 40 שעות אק'

C++ is undoubtedly one of the most popular programming languages for software development. It brings language enhancements and object-oriented programming support to C. However, C++ is a large and sometimes difficult language, and even with a C background, a programmer needs to understand C++ programming style as well as C++ constructs to get the best out of it. QA Training's highly successful C++ for C Programmers course has a thorough theoretical and practical coverage of the language. This helps to eliminate the misconceptions and poor programming practice that can cause so many problems.

For experienced C programmers, the course will illustrate how to get the benefits of good software engineering and code reuse by using standard C++ and object-oriented programming techniques in real-world programming situations. There will be ample opportunity to apply these techniques during the practical sessions.
Delegates without extensive C experience should attend our course #4330, C++ for non-C Programmers course instead.
This is a hand on course with a mix of tuition and practical sessions for each technical chapter which reinforce the C++ syntax and object-oriented programming techniques covered in the course.

The course contains an appendix on the latest language enhancements of C++ 11. 

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה


  • Define classes
  • Write class member functions
  • Use constructors, destructors and dynamic memory
  • Write code that is efficient and robust
  • Build new classes from other classes using inheritance, composition and association
  • Use template classes
  • Use operator overloading
  • Design and write classes with polymorphic behavior


קהל יעד

  • C Programmers wishing to learn or improve in C++

תנאי קדם

 Delegates must have solid experience of C including structures (i.e. struct and/or class); declaration and use of pointers; function declaration, definition and use with call by value or call by pointer; dynamic memory allocation (i.e. malloc and free, or new and delete); multiple source file projects (requiring project files or makes files).
You should also have a good appreciation of object-oriented principles or have    attended our Object-Oriented Primer course.
 Delegates with less than four months or no recent experience of C should attend the course #4330, C++ for non-C Programmers course instead.


 Course Introduction 

  • Course Prerequisites
  • Course Objectives
  • Course Delivery
  • Course Practical
  • Course Structure


An Overview of OO Programming and C++ 

  • Review of OOP principles
  • Behavior, state, identity, inheritance, polymorphism
  • History and evolution of C++
  • Key features of C++
  • C++ as a better and safer C


The Class Approach 

  • Grouping of data and functionality
  • Syntax of a class declaration
  • Syntax of use
  • Public and private
  • Abstract Data Types
  • Program structure            


Providing Class Functionality 

  • Member functions
  • Function overloading
  • Default arguments
  • Ambiguities
  • Anonymous arguments
  • Resolving scope conflicts
  • The Scope resolution operator
  • The this pointer


Object birth and death 

  • Life of an object
  • Constructors
  • operator new
  • Death of an object
  • Destructors
  • operator delete
  • Dynamic arrays


Efficiency and Integrity Issues 

  • Enumerations
  • Const declarations
  • Const member functions
  • Const member data
  • Inline function mechanism
  • Reference variables


Composite Classes 

  • An opportunity for reuse
  • Scoping and initialization
  • Order of construction
  • Member Initialization lists
  • Use of fundamental classes


Associative Classes 

  • Delegating class functionality
  • Dynamic associations
  • Custody and lifetime
  • Constant associations


Operator Overloading 

  • Operator functions
  • Unary operators
  • Binary operators
  • Global operators
  • Member operators
  • Subscript operators         
  • Input operators
  • Output operators
  • Guidelines


Class Properties 

  • Static data members
  • Static member functions
  • Nested types
  • Forward declarations
  • Friend classes


Container Classes 

  • Organizing collections of objects
  • Template classes
  • vector
  • list
  • Iterators
  • Template functions
  • Algorithms
  • Using the Standard Library


Copying and Conversions 

  • The copy assignment operator
  • Copy constructors
  • Conversions to a class object
  • Conversions from a class object



  • Extension of existing classes
  • Notation, syntax, terminology
  • Protected members
  • Scoping and initialization
  • Multiple inheritance
  • Abstract base classes
  • Guidelines



  • Modified class behavior
  • Virtual functions
  • virtual destructors
  • Late binding
  • Inside the virtual function mechanism
  • Pure virtual functions
  • Use of pointers to base type
  • Guidelines         


The Way Ahead 

  • Review
  • Support after this course
  • Further C++ information sources
  • Future evolution of C++



  • Namespaces
  • Overview of exception handling
  • Smart pointers
  • Customized memory management
  • Interfacing with C
  • Class design recommendations
  • Sample C++ coding standard 
  • Latest language enhancements of C++ 11.