Course: Defensive C++

$139.00
$168.19 incl. vat

ADD_TO_CART_INFO_FOR_BUSINESS

duration: 10 hours |

Language: English (US) |

access duration: 180 days |

Details

Using high-quality code in any programming language involves writing code that is clear, comprehensible, and maintainable. This means that your code needs to follow sound software engineering principles, and it is also important to know and deal with the different kinds of errors that might occur in code. Use this course to explore key principles of software engineering and learn how the preprocessor, compiler, and linker come together to build your C++ executable. You’ll learn more about avoiding fatal coding errors, adopting defensive coding techniques, and following best practices and other code niceties. You will also examine different kinds of errors in code, including compiler, linker, runtime, and logic errors. You'll explore the most important features released in C++20, including the ranges library, coroutines, concepts, and modules. Next, you’ll discover the role of defensive programming and defensive design and the implementation of a defensive barrier in your code. You’ll also learn how to use preconditions to check for inputs to your code and postconditions to verify the final results returned by your code. Next, you'll explore how to automate the management of resources that need to be explicitly acquired and reduce resource management issues through the RAII technique. Finally, you’ll examine the technical specifications of design by contract and the role of its key components - preconditions, invariants, and postconditions.

Result

After completing this course, you are ready to work with C++ in a defensive way.

Prerequisites

You have some basic programming knowledge.

Target audience

Software Developer, Web Developer

Content

Defensive C++

10 hours

Defensive C++: Software Engineering Principles & Types of Errors

  • Using high-quality code in any programming language involves

  • writing code that is clear, comprehensible, and maintainable. This
  • means that your code needs to follow sound software engineering
  • principles, and it is also important to know and deal with the
  • different kinds of errors that might occur in code. Use this course
  • to explore key principles of software engineering and learn how the
  • preprocessor, compiler, and linker come together to build your C++
  • executable. You will also examine different kinds of errors in
  • code, including compiler, linker, runtime, and logic errors. When
  • you are finished with this course, you will have the skills and
  • ability to implement software engineering principles to write clean
  • and comprehensible code.

Defensive C++: Defensive Programming & Defensive Design

  • While defensive design involves planning for contingencies that

  • might occur in a software development life cycle, defensive
  • programming entails writing code such that it continues to function
  • predictably in the presence of unforeseen circumstances. Through
  • this course, explore the role of defensive programming and
  • defensive design and the implementation of a defensive barrier in
  • your code. You'll investigate various error reporting techniques,
  • recognize scenarios for implementing a technique rather than
  • exceptions, and distinguish between using exceptions and assertions
  • to raise errors. The course will also help you discover how to use
  • preconditions to check for inputs to your code and postconditions
  • to verify the final results returned by your code. At the end of
  • this course, you will have the skills and ability to follow a
  • defensive approach to your software development and use exceptions
  • and assertions to flag preconditions and check for
  • postconditions.

Defensive C++: Writing Defensive C++ Code

  • Writing good, robust, and maintainable C++ code involves

  • understanding the intricacies of the language and avoiding common
  • pitfalls. Use this course to learn more about avoiding fatal coding
  • errors, adopting defensive coding techniques, and following best
  • practices and other code niceties Examine some common coding
  • errors, the correct way to set up constructors in code, and the
  • pitfalls of overriding non-virtual functions. You will also explore
  • object slicing errors, how to cast objects to other types, and the
  • use of smart pointers to manage resources in C++. Finally, you will
  • understand the implications of the static initialization order
  • fiasco in C++ and how you can avoid it. At the end of this course,
  • you will have the knowledge and skills to write robust, defensive
  • C++ code.

Defensive C++: Managing Memory

  • Modern C++ offers the use of smart pointers in the C++ standard

  • library, which uses the resource allocation is initialization
  • (RAII) technique to free programmers from the burden of resource
  • management. Take this course to discover the various pitfalls
  • involved in manually managing memory on the free store in C++.
  • Through this course, you'll explore how to automate the management
  • of resources that need to be explicitly acquired and reduce
  • resource management issues through the RAII technique. When you are
  • finished with this course, you should be able to manage memory and
  • other resources in your C++ code using smart pointers from the
  • standard library.

Defensive C++: Design by Contract & Features in C++

  • Design by contract (DbC) involves two parties, a client and a

  • supplier, collaborating based on mutual obligations and benefits.
  • DbC was intended to be released as a part of the C++ language in
  • C++20, but will now be part of the C++23 release. Use this course
  • to examine the technical specifications of design by contract and
  • the role of its key components - preconditions, invariants, and
  • postconditions. You'll explore the most important features released
  • in C++20, including the ranges library, coroutines, concepts, and
  • modules. You'll also discover the weaknesses in defensive
  • programming and when to implement offensive programming techniques
  • in your code. When you are finished with this course, you will be
  • able to tackle complex projects built using C++ and write code for
  • them using software engineering principles and defensive
  • programming techniques.

Course options

We offer several optional training products to enhance your learning experience. If you are planning to use our training course in preperation for an official exam then whe highly recommend using these optional training products to ensure an optimal learning experience. Sometimes there is only a practice exam or/and practice lab available.

Optional practice exam (trial exam)

To supplement this training course you may add a special practice exam. This practice exam comprises a number of trial exams which are very similar to the real exam, both in terms of form and content. This is the ultimate way to test whether you are ready for the exam. 

Optional practice lab

To supplement this training course you may add a special practice lab. You perform the tasks on real hardware and/or software applicable to your Lab. The labs are fully hosted in our cloud. The only thing you need to use our practice labs is a web browser. In the LiveLab environment you will find exercises which you can start immediatelyThe lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience. 

WHY_ICTTRAININGEN

Via ons opleidingsconcept bespaar je tot 80% op trainingen

Start met leren wanneer je wilt. Je bepaalt zelf het gewenste tempo

Spar met medecursisten en profileer je als autoriteit in je vakgebied.

Ontvang na succesvolle afronding van je cursus het officiële certificaat van deelname van Icttrainingen.nl

Krijg inzicht in uitgebreide voortgangsinformatie van jezelf of je medewerkers

Kennis opdoen met interactieve e-learning en uitgebreide praktijkopdrachten door gecertificeerde docenten

Orderproces

Once we have processed your order and payment, we will give you access to your courses. If you still have any questions about our ordering process, please refer to the button below.

read more about the order process

What is included?

Certificate of participation Yes
Monitor Progress Yes
Award Winning E-learning Yes
Mobile ready Yes
Sharing knowledge Unlimited access to our IT professionals community
Study advice Our consultants are here for you to advice about your study career and options
Study materials Certified teachers with in depth knowledge about the subject.
Service World's best service

Platform

Na bestelling van je training krijg je toegang tot ons innovatieve leerplatform. Hier vind je al je gekochte (of gevolgde) trainingen, kan je eventueel cursisten aanmaken en krijg je toegang tot uitgebreide voortgangsinformatie.

Life Long Learning

Follow multiple courses? Read more about our Life Long Learning concept

read more

Contact us

Need training advise? Contact us!


contact