A seminar for software engineers who need to master the complexity
of C++. The seminar provides insights into frequently neglected language
details, thereby creating an awareness of traps and pitfalls in the language,
and explains strategies for achieving a higher degree of reliability and
robustness of C++ programs.
This seminar covers the most important material that every professional
C++ developer needs to know to be truly effective with the language and
is especially suited to engineers who develop safety-critical components
and need to produce reliable software that must meet the highest quality
requirements. The focus is on the core of the language and neither requires
nor strives for comprehensive knowledge of all language features.
Less commonly used features such as templates, the standard library, and
recent language additions such as C++-20 features are mentioned, where
relevant. Topics include correct allocation and deallocation of memory,
elimination of invalid pointers and memory leaks, efficient and correct
initialzation, copying and moving of objects, preservation of object validity,
properly expressing ownership concepts, const correctness, name lookup
and overload resolution of redefined functions, implict type conversions,
operator overloading, expression evaluation and sequence points.
The course is designed and conducted by Angelika
Langer and backed by years of experience in teaching C++ related
topics and more than a decade of real-world experience in industrial software
development. Angelika Langer is a freelance trainer/consultant in the area
of object-oriented software development in C++ and Java. She is member
of the ANSI C++ standards committee since 1993, a former columnist of C++
Report, and a recognized speaker at OO conferences worldwide.
|
|
Prerequisite Courses
and Skills:
|
Introductory C++ course, or equivalent experience.
One year of programming experience using C++. |
Duration:
|
3,5 days |
Format:
|
Lecture, question/answer, code reviews, and hands-on exercises.
This is not a hard to digest lecture-only seminar; instead the focus is
on gaining practical experience by reviewing and improving real-world source
code. |
Attendants should feel comfortable with the basics of the language
and be open for deepening their knowledge of traditional C++. People who
have learned C++ recently, as well as people who have been programming
in C++ for some time, will come away from this seminar with useful, practical,
proven information. |
PERFORMANCE
OBJECTIVES
|
Explore, in depth, potential pitfalls in C++ |
|
Allocate and deallocate memory correctly |
|
Eliminate invalid pointers and memory leaks |
|
Learn about move support, r-value references and forwarding |
|
Understand the concept of constness in C++ |
|
Understand implict type conversions in C++ |
|
Master crucial member functions applicable to every class |
|
Understand the resource acquisition is initialization (RAII) technique
for managing resources |
|
Gain insights into the differences among member functions, non-member
functions, virtual functions, and non-virtual functions |
BUSINESS OBJECTIVES
|
Ensuring skills to construct reliable and robust business solutions |
|
Meeting highest safety and reliability requirements |
|
High-quality software |
|
Bug-free programs |
|