Advanced C++ (C++ Traps and Pitfalls)
Although C++ is highly flexible and efficient, its very flexibility coupled with a very mixed parentage means that it supports just-about-anything-oriented design as well as the two commonest styles: object-oriented and generic (template). The mixed parentage also means that its syntax is complex and idiosyncratic. This hands-on course clarifies and prioritizes the language from the perspective of teaching production-quality object-oriented and generic programming in C++. This is an ideal follow-up to the introductory Hands-On Object-Oriented Design & Programming using C++ course.
Duration
The course lasts four days. If it is being taken as a follow-up to the introductory Hands-On Object-Oriented Design & Programming using C++ course, we recommend that a practice period of three or four weeks be allowed to elapse between taking the two courses.
Each day typically starts at 09.00 and finish at 16.30. The course is based on a cycle of theory-language-practice-review, with two or three cycles each day. One non-trivial, practical case-study is developed during the course.
Intended Audience
The course is aimed at software engineers who already have a basic knowledge of C++. Some knowledge of object-oriented design principles would also help participants to get the most from the course.
Aims
- To know C++ syntax and usage in detail;
- To be aware of the influences that made C++ the language that it is;
- To know the subset of C++ that object-oriented C++ would typically deploy, and why;
- To have practised assembling an industrial-strength, production-quality class;
- To know the subset of C++ that generic (template-based) C++ would typically deploy, and why;
- To have practised creating a template class;
- To know what one would expect to find in a typical C++ style guide, and why;
- To know of the majority of C++'s traps and pitfalls in detail;
- To be aware of the differences between classic C++ and standard C++;
- To be aware of the contents of the standard library, including the STL;
- To have practised using a range of provisions from the standard library, including streams, exceptions, containers, iterators, algorithms and function objects;
Numbers
We recommend that there are no more than 10 participants, each working at his or her own machine.
Deliverables
- Lectures
- Facilitation of discussions
- Direction, assistance and feedback on exercises
- Proposed solutions to the exercises
- Copies of lecture slides, plus explanatory text and summaries
- Reference list of books and sources
Contents
- Introductions to, and organization of, C++
- Expressions and statements
- The type system
- Class details
- Special functions: default and copy constructors, copy assignment operator and destructor
- Operator overloading
- C++ and memory
- Smart pointers and memory
- Namespaces
- Exceptions
- Inheritance in detail
- Templates and the STL
Site Requirements
- One PC with Visual C++ (version 6 or .NET), per participant (including one for the lecturer), preferably networked and with a printer
- Data projector of at least 1024 x 768 resolution, and suitable screen
- White-board, preferably not doubling up as the projector's screen; blackboard and chalk are acceptable
- Flip-chart and easel, with additional flip-chart paper
Contacting
Please contact Matrice by telephone on +44 7010 704705; by fax on +44 7010 704706; by emailing bookings@matrice.co.uk; or by visiting http://www.matrice.co.uk
Questions or problems regarding this web site should be
directed to webmaster@matrice.co.uk.
Copyright © 2005 Matrice. All rights reserved.
Last modified:
Tuesday, 07-Jun-2005