Advanced C++ Development Techniques
This course will keep the audience abreast of these changes. It covers four main areas: new and advanced language features; using the standard library; implementing object-oriented concepts and patterns in C++; effective C++ programming techniques and idioms. It also suggests ways to maximise efficiency, code quality, and reusability.
Delegates will gain a greater understanding of the capabilities and potential pitfalls of the C++ language and will be more able to use C++ language features to write robust, quality software and you will also have a good grounding to make the best use of specific component technologies, such as COM and CORBA.
This a comprehensive five-day course with a combination of lectures and practical sessions for each chapter to reinforce the topics covered throughout the course. The practicals use code skeletons, so that you can concentrate on specific C++ features.
- You must have solid and genuine experience of C++ including class definitions and member functions, constructors and destructors, references, virtual functions and new and delete operators.
- Ideally, you will have attended one of our C++ programming courses and have been using C++ solidly for at least six months. You should also have an appreciation of object-oriented principles, possibly from attending the Object-Oriented Software Development or an object-oriented analysis and design course.
- Describe advanced inheritance issues, such as private inheritance, multiple inheritance, and virtual base classes
- Use advanced C++ language features and programming techniques, such as Run-Time Type Identification (RTTI), smart pointers and delegation
- Use different memory management techniques and strategies to customise and optimise memory usage in a C++ program
- Design, implement and use template functions and template classes
- Take advantage of the standard C++ library
- Design and use container classes and iterators
- Use C++ exceptions to simplify error handling in large programs
Evolution of Standard C++
- ISO C++; Changes to the core language; Overview of the standard library
C++ and OO Refresher
- Abstraction and encapsulation; Composition and association; Inheritance and polymorphism; Patterns and idioms
Copying and Conversions
- The staticcast, dynamiccast, constcast and reinterpretcast keyword casts; Logical vs physical const-ness and the mutable keyword; Converting constructors and the explicit keyword; User defined conversion operators; Copy construction and assignment
Scope
- Static class members; The Singleton pattern; Nested classes; Nested class forward declarations; The Cheshire Cat idiom; Namespaces
Delegation Techniques
- The Object Adapter pattern; The Null Object Pattern; The Proxy pattern; Overloading the member access operator; Smart pointers; The Template Method pattern; Factory objects
Subscripting Techniques
- Overloading the subscript operator; Overloading with respect to const-ness; Smart references; Multi-dimensional subscripting; Associative containers
Template Functions
- Using and implementing generic algorithms with template functions; Overloading and specialising template functions; Template instantiation and linkage
Template Classes
- Using and implementing generic types with templates classes; Multiple template parameters; The standard vector, list, pair, and map template classes
Iterators and Algorithms
- The need for Iterators; The standard library (STL) iterator model; Generic algorithms using iterators; STL algorithm pitfalls; Introduction to function objects
Exception Handling
- Classifying and handling exceptions; Catching and throwing exceptions; The standard exception class hierarchy; Uncaught exceptions; Strategies for handling exceptions
Exception Safety
- Resource acquisition idioms for exception safety; Exceptions in constructors; Exceptions in destructors; Exception safe classes; STL exception safety guarantees
Memory Management
- Object life cycle; Allocation failure; Customising memory allocation; Optimising allocation for a class through caching; Derivation safe allocation; Controlling timing of construction and destruction
Reference Counting
- Reference counting shared representation; Reference counted strings for copy optimisation; Subscripting issues; Smart pointers for simple, automatic garbage collection
Inheritance Techniques
- Subtyping vs subclassing; Abstract and concrete base classes; Inheritance scoping issues; Multiple inheritance; Virtual base classes; Interface classes; Mixin classes; Runtime type information (RTTI); Private and protected inheritance; The Class Adapter pattern
Template Techniques
- Templating on precision; Template adapters; Default template parameters; Template specialisation; Trait classes; Member templates; Non-type template parameters; Optimising template code space
Functional Abstraction
- Traditional callbacks using function pointers; The Command pattern; More on function objects; Member function pointers
This course will keep the audience abreast of these changes. It covers four main areas: new and advanced language features; using the standard library; implementing object-oriented concepts and patterns in C++; effective C++ programming techniques and idioms. It also suggests ways to maximise efficiency, code quality, and reusability.
Delegates will gain a greater understanding of the capabilities and potential pitfalls of the C++ language and will be more able to use C++ language features to write robust, quality software and you will also have a good grounding to make the best use of specific component technologies, such as COM and CORBA.
This a comprehensive five-day course with a combination of lectures and practical sessions for each chapter to reinforce the topics covered throughout the course. The practicals use code skeletons, so that you can concentrate on specific C++ features.
Main menu
Software Vendor
IT Technical
Business Skills
- >Project Management (154)
- ITIL (19)
- PRINCE2 (42)
- >Reporting (26)
- HR (25)
- Health and Safety (3)
- >Management (315)
- Business Development (4)
- Strategic Management (3)
- >Personal Development (240)
- >Leadership (69)
- >Administration (206)
- Finance (33)
- >Sales and Marketing (112)
- IT Service Management (73)
- Customer Service (20)
- Legal (8)
