C300 : Advanced C++ Programming Features & Techniques – Hands On

As the name implies, this course covers many of the advanced and complex topics of the C++ programming language. It is intended as the next step for programmers who have taken “An Introduction to C++ and Object Oriented Programming”. This course offers many of the C++ tips and techniques that most people don’t know about. It goes far beyond simple language issues. Through the use of lectures and hands-on labs, the student will gain an in-depth experience that truly exploits the power of C++. The course begins with the details of advanced C++ syntax. It then builds upon that syntax to develop and foster good object oriented techniques. Issues such as template based container design, proper application architecture and “gotchas” of exception handling are just some of the topics covered. The Goal This course shows off some of the “really cool stuff” that really makes C++ the language of choice for many developers. At the end of this course you will be able to design and code larger and more complex programs. You will also be able to take advantage of the power of the newer C++ capabilities.

Prerequisites: The student must have taken any of the “Introduction to C++ Programming” courses, or have an equivalent, introductory knowledge of C++.

Duration: 5 Days

Run-Time Typing

Syntax and details

Benefits

Implementation

Use and abuse

Complex Operators and Overloading

new and delete

( ), ->, *, and &

Multiple Inheritance

Classes

Creating

Managing

Problems

Alternatives

Reference Count Objects

Benefits

Implementation

C++ “gotchas”

Exception use in constructors

Nesting exception classes in other classes

Exceptions and templates

Many others…

Miscellaneous Advanced Techniques

Overcoming statically-bound operators

Putting stack-created items on the heap

Creating “virtual” constructors

Pointers to member functions and data members

Smart pointers and handles

Multiple Name Spaces

Definition

Benefits and implementation

Object Persistence

Overview

A mechanism for implementation

Overview of object oriented databases

Resource Acquisition

Problems

Treating resource acquisition as initialization

Techniques and benefits

Class Library Design

Templates versus hierarchies

Overview

Ownership

Container Design

Lists

Sets

Stacks

Queues

Arrays and associative arrays

Developing Template Based Container Classes

Adapter classes

Function objects

Template algorithms

Iterators

Collections and Iterators

Implementation

Benefits

Standard Template Library

Containers

List

Deque

Vector

Set

Map

Memory allocation

Data ownership

Iterators

Input

Output

Forward

Bidirectional

Random access

Function objects

Adaptors

Algorithms

Document View Architecture

Overview

Benefits

Implementation

Miscellaneous Issues

Performance

Others

Patterns

Factory

Memento

Singleton

Composite

Each one of our high content courses is custom created to ensure that students receive as much real world knowledge as possible. Our expert instructors develop all our course materials in-house. We literally “wrote the book” on programmer training.