design and develop C++ applications

Most C++ courses teach you the features and syntax of the language. This one tells you how to design and develop realistic OO applications in C++. You learn all the good techniques of OO programming; as well as how to implement these objects in C++.

Duration: 5 days


  • be able to write well-decoupled Object Oriented (OO) C++ code
  • know how to design C++ software that it is easy to maintain and extend
  • follow a clear development method geared towards OO language development
  • create C++ objects that are flexible enough to belong in reusable libraries

target audience

The course is suitable for anyone. For onsite training of development teams with experience of OO design and development in another language, such as Java, the course can be slimmed down.

Introduction to C++

  • origins of C++
  • development of a sample program
  • testing and debugging
  • interactive and batch mode

Introduction to objects

  • objects in the world and in software
  • encapsulation
  • pluggability and extensibility
  • object analysis and design

C++ basics

  • blocks and declarations
  • variables and data types
  • statements and expressions
  • functions
  • parameter types and passing
  • arrays and structs
  • overloading
  • I/O streams


  • classes and member functions
  • private and public parts
  • constructors.
  • overloading operators

Programming with objects

  • objects, fields, and references
  • encapsulation
  • virtual functions and polymorphism
  • class diagrams
  • messages
  • arrays and collections
  • inheritance
  • decoupling

Models and code

  • choosing classes and links
  • use-cases
  • detail and high-level
  • basic design sequence
  • business models, scenarios
  • collaborations
  • decoupling
  • associations and visibilities
  • using patterns

Pluggable design

  • designing collaborations
  • contracts
  • defining interfaces and goals
  • abstract frameworks
  • generics and delegation
  • observers
  • modelling component interfaces

Memory management

  • pointers
  • dynamic storage allocation

User interface

  • the user interface
  • picture components
  • events and actions
  • designing a user interface
  • storyboards
  • use cases
  • control objects

The development process

  • short cycle development
  • low-risk paths
  • basic design sequence
  • re-engineering
  • reuse and component-based design
  • process patterns
  • deliverables and pragmatics

Please note, when taught at your site, this course is customizable. Modules can be adapted, removed, added from other courses, or even created.


Day 1

  • Introduction to C++
  • Introduction to objects

Day 2

  • C++ basics
  • Classes

Day 3

  • Programming with objects
  • Models and code

Day 4

  • Pluggable design
  • Memory management

Day 5

  • User interface
  • The development process


Ideally this training should be followed up some weeks later, by the course: advanced C++ programming.

course instructor

The course is presented by one of our senior consultants, each of whom has at least ten years' experience in object oriented software development, and at least three years' experience as a trainer and consultant in a diverse range of application areas.

print     printer-friendly version