C++ for C Programmers

BT120


5 Days

Download Full Syllabus Request a Quote
All Our Courses Now Also LIVE

Course Outline

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 itl. 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. 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.

Upcoming Meetings

Modules

A Course Introduction
  • Course Prerequisites
  • Course Objectives
  • Course Delivery
  • Course Practical
  • Course Structure
An Overview of OO Programming & C++
  • Review of OOP principles
  • Behavior, state, identity, inheritance, polymorphism, abstraction
  • History and evolution of C++
  • Key features of C++
  • C++ as a better and safer C, C++ vs. C, C++ in Real Time systems
UML Brief overview
  • General overview on UML
  • Class Diagram
  • Sequence Diagram
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, Integrity & Performance Issues
  • Enumerations
  • Const declarations
  • Const member functions
  • Const member data
  • Inline function mechanism
  • Reference variables
  • Composite Classes
  • An opportunity for reuse
  • Embedded / Real Time considerations
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
  • Embedded / Real Time considerations
Class Properties
  • Static data members
  • Static member functions
  • Nested types
  • Forward declarations
  • Friend classes
Templates and Container Classes
  • Organizing collections of objects
  • Template classes
  • vector
  • list
  • Iterators
  • Template functions
  • Algorithms
  • Using the Standard Library
  • Embedded / Real Time considerations
Copying and Conversions
  • The copy assignment operator
  • Copy constructors
  • Conversions to a class object
  • Conversions from a class object
  • Embedded / Real Time considerations
Inheritance
  • Extension of existing classes
  • Notation, syntax, terminology
  • Protected members
  • Scoping and initialization
  • Multiple inheritance
  • Abstract base classes
  • Guidelines
Polymorphism
  • Modified class behavior
  • Virtual functions
  • virtual destructors
  • Late binding
  • Inside the virtual function mechanism
  • Pure virtual functions
  • Use of pointers to base type
  • Guidelines
  • Real Time considerations
Embedded and Real Time C++ Considerations
  • Comparing C and C++ performance, Performance analysis
  • C++ code translated to C
  • Inheritance in C
  • The Embedded C++ Language Standard
  • Program Size Comparisons
  • Problems with Exceptions, RTTI, mutable
  • Problems with Templates, Multiple Inheritance, Operator Overloading
  • Compiling Embedded C++, Making Objects ROMable
  • Encapsulating a ROMable class
  • Placing objects at a specific address
  • Interrupts and interrupt vectors in C++
  • Combining C and C++ code
OOC (Object Oriented in C)
  • Modularity and correct API Definition
  • Encapsulation and Information hiding
  • Inheritance

Prerequisites

  • Delegates must have solid experience of C including structures

Upcoming Meetings

C++ is undoubtedly one of the most popular programming languages for software development”
Download Full Syllabus

Target Audience

    • Israel
    • Poland
    • USA
    • Russia
    • India
    Skip to content