Intermediate C++ Programming | Effective C++ is a lab-intensive, hands-on C++ training course geared for experienced C++ programmers who wish to take their development skills to the next level. Students will leave this course armed with the required skills to put advanced C++ programming skills right to work in a practical environment, using sound coding techniques and best practices.
- This comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability & testing. This material is covered as needed depending on the background of the students.
The second module covers more advanced topics. Advanced issues of inheritance and polymorphism are covered. Principles of effective class design, including, use of composition, templates and interface inheritance. The course covers exception handling and run-time type information (RTTI). Multiple inheritance is covered, including the complications that are introduced by this powerful feature. Advanced applications of C++ concepts are studied, including smart pointers and reference counting.
The third module introduces the Standard C++ Library. The main components of data structures, algorithms and iterators are covered. Illustrations are provided of a number of important containers, such as vectors, stacks, queues, lists and sets. Extensive programming examples and exercises are provided. A number of progressively developed case studies are used to illustrate object oriented programming techniques and to give the student practical experience in putting together features of C++ learned in the course.
Throughout the course, new features of modern C++ (version 11 and beyond) are introduced as well as the impact on programming style. These new features include smart pointers, move constructors, functional programming and lambda expressions.
This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in basic coding with C++, coupling the most current, effective techniques with the soundest industry practices. Students will explore:
- Overview/Review of C++
- Modern C++ 11, 14, 17
- Memory Management
- Inheritance and Polymorphism
- Exception Handling
- Input/Output in C+
- Unit Testing in C++
- Advanced Polymorphism and Inheritance
- Functional Programming
- Runtime Type Information
- Overview of Standard Library
- STL Containers
- STL Iterators
- Threads & Tasks
Need different skills or topics? If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate. We offer additional C++, programming, development, design, testing, services, application security and other related topics that may be blended with this course for a track that best suits your needs. Our team will collaborate with you to understand your needs and will target the course to focus on your specific learning objectives and goals.
This is an intermediate level development course designed for developers with prior C++ programming experience. Students without prior C++ programming background should take the pre-requisite training.
Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Learning Path recommendations.
Take Before: Incoming students should have practical skills equivalent to the topics in, or should have recently attended, one of these courses as a pre-reqsuite:
- TTC2100: Introduction to C++ Programming
- Please contact us for recommended next steps tailored to your longer-term education, project, role or development objectives.
Each student will receive a Student Guide with course notes, code samples, software tutorials, diagrams and related reference materials and links (as applicable). Our courses also include step by step hands-on lab instructions and and solutions, clearly illustrated for users to complete hands-on work in class, and to revisit to review or refresh skills at any time. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.