Site Sections => About Us | Consultancy | Training | Software | Publications | Open Source | Support | Open Standards | FAQ | Jobs
Site Style Info

Introduction to C++ Programming - A 5 day Course

Synopsis

Unlike many other introductory C++ courses that use Microsoft, or Borland integrated development environments this course is based on the gnu C++ compiler. Programmers attending this course will learn to write carefully thought out and well implemented C++ code and learn a lot about the GNU C++ compiler at the same time.

Principles of object oriented analysis and design and of UML are covered. The relationship between C and C++ is explored, and the course includes a thorough overview of C syntax.

Intended Audience

The course is for experienced programmers, with a basic knowledge of C, who will be developing applications in C++, predominantly in a Unix or Linux environment. The compiler used on the course will be the GNU C++ compiler running on a Linux workstation.

Knowledge of Object Oriented Analsysis and Design, and of UML, although useful is not needed, as these topics will be covered in sufficient detail in the course where appropriate.

This course can also be run on Microsoft Windows platforms using the Cygwin port of GNU to Microsoft Windows.

Key Skills

  • Understanding the key aspects of object oriented analysis and design and UML
  • Use of the GNU C++ compiler
  • Handling of Input/Output in C++
  • Knowing when to use public and privated inheritance
  • Working with virtual classes and virtual inheritance
  • Understanding templates and essential features of the Standard Template Library (STL)
  • Mastering basic patterns and idioms - such as the handle-body idiom, the singelton pattern, the composite pattern and the observer pattern
  • Implement simple Graphical User Interfaces using the Qt+ widget set
  • Appreciate the issues involved in implementing data persistence

Practical Work

The course contains many simple programming exercises to reinforce the theory, and to stimulate understanding. Coverage of make and makefiles, and the various GNU C++ compiler options will be included at appropriate points in the course.

  • Creating and manipulating objects and displaying their attributes
  • Experimenting with public and private inheritance
  • Experimenting with virtual classes
  • Implementing copy constructors
  • Exploring deep vs. shallow copying techniques
  • Understanding reference counting and the copy on modify idiom
  • Implement an instance of the handle-body idiom
  • Explore some uses of the Singleton pattern
  • Build a simple graphical user interface
  • Demonstrate the Observer pattern in action
  • Implement a templatised singly linked list
  • Writing and reading a table of records to and from a file
  • Saving a collection of objects and retrieveing a collection of objects in binary format to and from a file
  • Appreciate some of the functionality provided by the Standard Template Library

Scheduled and On-site Courses

Courses in this subject are scheduled on an 'ad-hoc' basis. We can arrange a course at our Carshalton centre or on customer site for any client wishing to send two or more delegates on the same course.

For courses at the Carshalton Centre the fee will be:

  • £3500 + VAT for the first two delegates
  • £1650 + VAT for the third delegate
  • £1200 + VAT for the fourth delegate
  • £400 + VAT for each additional delegate to a maximum of eight

On-site course fees are as above + expenses recharged at cost.

For a 1:1 course in Carshalton the fee is £2750 + VAT. For a 1:1 on-site course the fee is £2750 + VAT + expenses recharged at cost.

If there are any dates showing below this line, a course has been scheduled and places for individuals are available at £1750. Otherwise, no courses are currently scheduled and the above fees apply.


Contents:

A background to object oriented thinking

  • Objects as things having attributes and methods
  • The message passing model of object interaction
  • Objects as instances of some class
  • Relationships between objects
  • Hierarchies of object classes
  • UML notation for describing classes and class hierarchies
  • UML for describing relationships between objects
  • Building more complex objects - composition and aggregation

Practical applications leading to object oriented approaches

  • Structured programming - modularity and information hiding
  • Simulation and modeling of complex communications, manufacturing and logistics systems
  • Artificial Intelligence (AI) - problem solving, planning, searching problems
  • Graphical User Interfaces - window managers, widgets and controls

Brief History of C++

  • Early C++ (translation of C++ code to C code)
  • C++ is not a pure object oriented language - C++ as an extension of C
  • C++ as an evolving language and the development of the ANSI C++ standard

An overview of the C in C++

  • Base data types (numeric char, integer and floating point types)
  • Pointers and arrays
  • Function prototypes and function pointers
  • Structs, pointers to structs and dynamic data structures
  • Typedefs, enums and macro
  • I/O in C
  • Replacing C based I/O (printf, scanf and all that) with C++ based I/O
  • Functions in C++
  • Function overloading
  • Name mangling / decorating
  • Mixing C and C++ code modules (use of extern C)
  • Operators and operator overloading in C++

Classes and instances

  • Member variables and member functions (private, public, protected)
  • Constructors and destructors
  • Default constructors and default destructors
  • Initialiser lists
  • Derived classes
  • Arrays of classes

More advanced aspects of working with classes and instances

  • Copy constructors
  • Deep vs. shallow copying
  • Virtual functions and virtual classes (compile time vs. run time binding)
  • Introduction to implementing dynamic data structures using classes (using linked lists and binary trees as examples)
  • Friend classes and friend functions
  • Static member variables and static member functions
  • An introduction to templates and to the Standard Template Library

A more detailed look at input and output in C++

  • The C++ iostream classes
  • Overloading the insertion and extraction operators for use with user defined classes
  • Reading and writing to files
  • Basics of object and data persistence

C++ training UK enquiries

UK Training enquiries and feedback form.

C++ training UK prices

For publicly scheduled training (individual places), see our UK training schedule.

In-house training for company groups is charged at a daily rate per group — see our In-House UK Training Guidelines.

Publicly Scheduled Training Locations

We currently run public training courses in the following locations:

  • London, UK
  • Leeds, West Yorkshire, UK
  • Birmingham, West Midlands, UK
  • Carshalton, Surrey, UK
  • Chester, North West, UK
  • Coventry, West Midlands, UK
  • Edinburgh, Scotland, UK
  • Glasgow, Scotland, UK
  • Harwell, Oxfordshire, UK
  • Manchester, North West, UK
  • Milton Keynes, Buckinghamshire, UK
  • Newark, Nottinghamshire, UK
  • Reading, Berkshire, UK
  • Slough, Berkshire, UK
  • Stevenage, Hertfordshire, UK
  • Wakefield, West Yorkshire, UK
  • Wokingham, Berkshire, UK

Most UK public training courses are available on a monthly basis.

Please see the individual course outlines or our public training schedule for details.

In-house (on-site) training locations

We deliver in-house courses at client premises and/or training facilities in any part of the world which is practically and commercially accessible.

Our In-house training guidelines outline our basic requirements and our UK pricing structure. To estimate costs for training in other countries, simply convert to your local currency and then make a rough calculation of our tutor's costs for travelling to and staying at your location.


West Yorkshire Office

GBdirect Ltd
Training Division
Bradford Design Exchange
34 Peckover Street
BRADFORD
BD1 5BD
West Yorkshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


South East Regional Office

GBdirect Ltd
Training Division
18 Lynn Rd
ELY
CB6 1DA
Cambridgeshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


Please note:
Non-training enquiries should be directed, initially, to our UK national office in Bradford (West Yorkshire), even if the enquiry concerns services delivered in London or South/East England. Clients in London and the South East will typically be handled by staff working in the London or Cambridge areas.