c++ programming for java and c# developers

By attending C++ Programming for Java and C# Developers workshop, Participants will learn to:

  • Define and use data types
  • Declare, define and call functions
  • Implement classes
  • Use pointers, dynamic memory and object lifetime
  • Write code that is efficient and robust
  • Implement exception handling
  • Use operator overloading
  • Implement copy and conversion
  • Implement object relationships – composition and association
  • Use container classes and templates
  • Implement class relationships – Inheritance, Interface and Polymorphism

C++ Programming for Java and C# Developers training course will illustrate how to get the benefits of good software engineering and code reuse by using both the standard C++ language as well as the object-oriented programming techniques in real-world programming situations. There will be ample opportunity to apply these techniques during the practical sessions.

Participants must have solid experience of Java or C# including data types (i.e. class and struct(C#)); Methods, use of call by value and call by reference; Multiple source file projects (requiring project files or equivalent); a solid appreciation of object-oriented principles is assumed.

COURSE AGENDA

  • Built-in types
  • Defining constants
  • Type conversions
  • Defining and using enumerations
  • Built-in arrays and their limitations
  • Using the vector class
  • Built-in strings as character arrays
  • Using the string class
  • Defining and using structures
  • Review of OOP principles
  • Key features of C
  • Hello World Program
  • Declaring, calling and defining functions
  • Overloading
  • Pass by copy and reference
  • Default and anonymous arguments
  • Inline functions
  • Storage Class
  • Class Definition and Implementation
  • Member functions
  • File organization
  • Defining and Initializing Objects
  • Scope, Statics and Nesting
  • Concepts and syntax
  • Pointers to scalar and structured types
  • Null pointers
  • Pointers for encapsulated objects
  • Pointers vs. references
  • Object storage, lifetime and scope
  • operators new and delete
  • Construction
  • Destruction
  • Dynamic arrays
  • Enumerations
  • Const declarations
  • Const member functions
  • Const member data
  • Inline function mechanism
  • Reference variables
  • Classifying and handling exceptions
  • Catching and throwing exceptions
  • The standard exception class hierarchy
  • Uncaught exceptions
  • Strategies for handling exceptions
  • Operator implementation
  • Global operators
  • Subscript operators
  • Input operators
  • Output operators
  • Member operators
  • Increment and Decrement operators
  • Guidelines
  • Copy constructors
  • The copy assignment operator
  • Conversions to a class object
  • Conversions from a class object
  • Composition
  • Scoping and initialization
  • Order of construction
  • Member Initialization lists
  • Association
  • Custody and lifetime
  • Constant associations
  • Organizing collections of objects
  • Template classes
  • vector, list, set and map
  • Iterators
  • Template functions
  • Algorithms
  • Inheritance of Implementation
  • Notation, syntax, terminology
  • Scoping and initialization
  • Abstract base classes
  • Interfaces
  • Inheritance of Interface
  • Multiple Inheritance
  • Substitutability
  • Polymorphism
  • Destruction issues
  • Guidelines