Course: C++ Inheritance & Polymorphism

$209.00
$252.89 incl. vat

duration: 12 hours |

Language: English (US) |

access duration: 90 days |

Details

In this course, you’ll start with C++ inheritance and you’ll move on to Polymorphism. Inheritance is a powerful, object-oriented language construct in which one class can be related to another class using an is-a relationship. Using Inheritance, you can construct complicated class hierarchies in which one class is a parent or a base of another class. In addition, you’ll learn in which order constructors and destructors are invoked on an object of a derived class in an inheritance hierarchy.

Inheritance forms the basis for Polymorphism, specifically runtime Polymorphism, which is a powerful object-oriented programming construct. Runtime Polymorphism involves a pointer or a reference of the base class type holding an object of the derived class. Moreover, you’ll learn about pure virtual functions, abstract classes, multiple inheritance and diamond hierarchy to get a cohesive understanding of all the possibilities C++ offers.

Result

After completing this course, you can make optimal use of all C++ Inheritance and Polymorphism offers. It supports the concept of reusability and reduces code length in object-oriented programming and allows the object to decide which form of the function to implement at compile-time (overloading) as well as run-time (overriding).

Prerequisites

To begin this course, you should have sufficient basic knowledge of C++.

Target audience

Software Developer, Web Developer

Content

C++ Inheritance & Polymorphism

12 hours

C++ Inheritance & Polymorphism: Using Inheritance for is-a Relationships

  • Inheritance is a powerful, object-oriented language construct in

  • which one class can be related to another class using an is-a
  • relationship. Using inheritance, you can construct complicated
  • class hierarchies in which one class is a parent or a base of
  • another class. Is-a relationships are a great way of performing
  • object-oriented design and are complemented by has-a relationships,
  • which are implemented using composition, rather than inheritance.
  • Explore inheritance relationships by setting up an inheritance
  • hierarchy in C++ and specifying one class as the parent of another
  • class. Then discover how member variables and methods are
  • accessible from the drive class, as well as from external code.
  • Finally, investigate base class access specifiers, and find out how
  • they work with member access specifiers. When you’re finished,
  • you’ll clearly understand how to use inheritance for is-a
  • relationships and how to identify uses for private inheritance.

C++ Inheritance & Polymorphism: Constructors, Destructors, & Inheritance

  • The order in which constructors and destructors are invoked on

  • an object of a derived class in an inheritance hierarchy is a very
  • important topic. Constructors are invoked in order from the
  • top-most (most base-level) class, down to the most derived class.
  • Destructors are invoked in the reverse order. Explore how
  • constructors work in an inheritance hierarchy, the order in which
  • the base and derived class constructors are invoked, and how
  • initialization lists need to be used in the derived class. Discover
  • how to use copy constructors and destructors in the context of
  • inheritance. Learn how to set up an inheritance hierarchy for
  • polymorphism. Finally, practice using objects in an inheritance
  • hierarchy with variables of pointer and reference types. When you
  • finish this course, you will have a solid foundation in
  • constructors, destructors, and inheritance, setting the stage for
  • runtime polymorphism and dynamic method dispatch.

C++ Inheritance & Polymorphism: Understanding & Using Polymorphism

  • Inheritance forms the basis for polymorphism, specifically

  • runtime polymorphism, which is a powerful object-oriented
  • programming construct. Runtime polymorphism involves a pointer or a
  • reference of the base class type holding an object of the derived
  • class. The beauty of runtime polymorphism is that when virtual
  • methods are invoked on this pointer, the derived class versions are
  • executed. You will start this course by defining name hiding and
  • how most methods on C++ objects are, by default, statically
  • dispatched. You will then learn about polymorphism and dynamic
  • dispatch, which is accomplished using the virtual keyword. Finally,
  • you will learn how the ‘override’ and 'final' specifications can be
  • used to achieve precise semantics and reduce the scope of bugs and
  • typos in your C++ programs.

C++ Inheritance & Polymorphism: Pure Virtual Functions & Abstract Classes

  • Pure virtual functions and interfaces are very powerful tools in

  • object-oriented programming, and interface-driven programming is a
  • great way of splitting up work across different developers on a
  • large project. You will start this course by considering why your
  • destructors should be marked as virtual in the base class if you
  • have an inheritance hierarchy. You’ll see the harmful effects of
  • not using virtual destructors in an inheritance hierarchy and the
  • problems with object slicing. You will also learn why it is
  • preferable to have variables of reference types to the base class
  • rather than the value types. You will then move to some finer
  • points of working with virtual methods, such as, the inadvisability
  • of using default parameters because these are statically bound.
  • Finally, you will master the syntax and semantics of pure virtual
  • functions and learn how a class that contains even one pure virtual
  • function becomes an abstract class that cannot be instantiated
  • directly.

C++ Inheritance & Polymorphism: Multiple Inheritance & the Diamond Hierarchy

  • C++ allows multiple inheritance, which means that one class can

  • have more than one base. C++ also has some powerful mechanisms for
  • dealing with edge cases such as the diamond hierarchy. You will
  • start this course by learning the precise syntax which is required
  • to implement multiple inheritance in C++, specifically, how it’s
  • important to have both base class access specifiers marked
  • independently. You will then move on to the topic of a diamond
  • inheritance hierarchy, in which the grandchild-level derived class
  • has two parents, both of which inherit from the common, grandparent
  • level base class. Finally, you will see how dynamic casts work in
  • the context of an inheritance hierarchy, how these are a lot safer
  • than static casts, and how they return a null value on failure when
  • used with pointers but they throw an exception on failure when used
  • with references.

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