
C++ for C Programmers
- Course type:
- Performance (What does this mean?)

| RRP | £1820 exc. VAT |
|---|---|
| Days | 4 |
| Code | LGCPPPG1 |
Secure online payment
- view dates / book course
- course description
- blogs
Course dates
Currently scheduled dates for this training course Location Sep Oct Nov Dec view later dates London King William Street |13 |- |- |- 
Location Jan Feb Mar Apr view earlier dates London King William Street |4 |- |- |- 
London King William Streetlocation information and directions

13 Sep Fewer than 5 places available £1,820 exc VAT 04 Jan 5 or more places available £1,820 exc VAT
Overview
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 C++ for
non-C Programmers course instead.
This is a hands 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.
Prerequisites
- 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 C++ for non-C Programmers course instead.
Delegates will learn how to
- 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 behaviour
Course outline
Course Introduction
- Course Prerequisites
- Course Objectives
- Course Delivery
- Course Practicals
- Course Structure
An Overview of OO Programming and C++
- Review of OOP principles
- Behaviour, 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 initialisation
- Order of construction
- Member Initialisation 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
- Organising 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
Inheritance
- Extension of existing classes
- Notation, syntax, terminology
- Protected members
- Scoping and initialisation
- Multiple inheritance
- Abstract base classes
- Guidelines
Polymorphism
- Modified class behaviour
- 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++
Appendices
- Namespaces
- Overview of exception handling
- Smart pointers
- Customised memory management
- Interfacing with C
- Class design recommendations
- Sample C++ coding standard
Related blogs
SQL Server for the passive aggressive
Posted by Phil Stirpe on 05 September 2010
How would you react if you walked into a classroom to deliver a course and came face to face with a delegate who three years earlier ripped you off for several thousand pounds?
Learning about learning
Posted by Stephanie Dedhar on 03 September 2010
A recent trip to the Science Museum proved that, with a little imagination, learning absolutely can be fun as well as effective.
Using the Novell ZCM 10.3 Agent to Display Closest Server Rules
Posted by Andrew Mallett on 02 September 2010
QA have been training and consulting with Novell ZCM 10 ( desktop management ) since the early days of the product back in 2007. So you know coming that by on training with us you are going to get the latest and most accurate advice and knowledge. A new feature of the 10.3 agent is that it allows support staff to display the evaluated closest server rules from the view point of the agent. This is great in trouble shoot as it is an easy mechanism to test the rules that you have created.
Creating Dynamic RAID Arrays with BTRFS
Posted by Andrew Mallett on 28 August 2010
You may have used Logical Volumes on Linux before with either LVM or EVMS and, of course, software raid. Now though we have a file-system that supports volumes that can dynamically increase and support RAID : BTRFS. With the complete implementation in the file-system the deployment and management is simplified and performance is increased. Although still EXPERIMENTAL it is worth looking at BTRFS as it has become to ship in many of the leading Linux Distributions.
Good e-learning: engaging, relevant and effective
Posted by Stephanie Dedhar on 17 August 2010
There are three headline characteristics that I keep in mind and try to achieve every time I design a piece of learning content.
