Course: C++ Inheritance & Polymorphism
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
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 immediately. The lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience.
Sign In
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
Een zakelijk account aanmaken
Wanneer u besteld namens uw bedrijf doet u er goed aan om aan zakelijk account bij ons aan te maken. Tijdens het registratieproces kunt u hiervoor kiezen. U heeft vervolgens de mogelijkheden om de bedrijfsgegevens in te voeren, een referentie en een afwijkend factuuradres toe te voegen.
Betaalmogelijkheden
U heeft bij ons diverse betaalmogelijkheden. Bij alle betaalopties ontvangt u sowieso een factuur na de bestelling. Gaat uw werkgever betalen, dan kiest u voor betaling per factuur.
Cursisten aanmaken
Als u een zakelijk account heeft aangemaakt dan heeft u de optie om cursisten/medewerkers aan te maken onder uw account. Als u dus meerdere trainingen koopt, kunt u cursisten aanmaken en deze vervolgens uitdelen aan uw collega’s. De cursisten krijgen een e-mail met inloggegevens wanneer zij worden aangemaakt en wanneer zij een training hebben gekregen.
Voortgangsinformatie
Met een zakelijk account bent u automatisch beheerder van uw organisatie en kunt u naast cursisten ook managers aanmaken. Beheerders en managers kunnen tevens voortgang inzien van alle cursisten binnen uw organisatie.
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.
FAQ
Niet gevonden wat je zocht? Bekijk alle vragen of neem contact op.