C++ Advanced Programming
Course
In Bath
Description
-
Type
Course
-
Location
Bath
-
Duration
5 Days
On successful completion of this course, participants will be able to: Design and implement robust and efficient C++ classes and programs. Recognise, understand and apply standard design patterns and idioms. Employ the features of the C++ Standard Template Library. Use templates, exceptions and namespaces effectively. Recognise and avoid many common pitfalls. Work with basic UML diagrams. Suitable for: This course is aimed at programmers, analysts, engineers and technical managers who wish to enhance their C++ knowledge and skills.
Facilities
Location
Start date
Start date
About this course
This course assumes a working knowledge of the C++ language up to the level covered in the C++ Programming course.
Reviews
Course programme
C++ is perceived by many to be a difficult language for many reasons. Participants in this course will learn how to avoid many of the pitfalls involved in C++ programming.
The development cycle can be shortened by drawing on the work of others. This course therefore covers the design phase and standard design patterns and also provides an in-depth appreciation of the Standard Template Library (STL).
Participants acquire hands-on experience of the language and its idioms by working through a wide selection of exercises.
Outline
Object-Oriented Design
■Identifying classes
■Simple diagrams
■Using pseudo-code
■Introduction to UML
Implementation
■Naming conventions
■Code organisation
■Using namespaces
Encapsulation
■Using 'friend' elements
■Using 'const' effectively
■Operator overloading
■Deep-copy operations
■Constructors and type-casting
■Virtual destructors
Inheritance
■Using public inheritance
■Using private inheritance
■Decoupling the interface and the implementation
■Polymorphism
Using the STL
■STL structure
■Performance guarantees
■Containers
■Iterators
■Algorithms
■Functors
■Adaptors
■Allocators
Extending the STL
■Iterators and traits
■Iterator adaptors
■Defining algorithms
■Functor adaptors
Enhanced I/O
■Formatting text
■Error handling
■Character types
■Internationalisation
Design Patterns
■Using design patterns
■Factory patterns
■Delegation patterns
■Control patterns
■Algorithmic patterns
Memory Management
■Handling memory exhaustion
■Controlling memory allocation
■Using auto_ptr
■Overloading new and delete
■Implementing smart pointers
Using Templates
■Template functions
■Default arguments
■Template classes
■Reducing code bloat
Efficiency & Robustness
■Using exceptions
■Separating algorithms and data
■Using reference counting
■Sharing state
Features Requiring Care
■RTTI
■Multiple inheritance
■Virtual inheritance
C++ Advanced Programming