C++ Programming
Training
In London
Description
-
Type
Training
-
Location
London
-
Class hours
36h
Facilities
Location
Start date
Start date
Reviews
Course programme
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 Programming
- C 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 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
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 Lifecycle
- Life of an object
- Constructors
- operator new
- Death of an object
- Destructors
- operator delete
- Dynamic arrays
Efficiency and Integrity
- 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
C++ Programming