Course: Develop your knowledge in Programming in C++ - Part 3: Advanced Concepts in C++

$379.00
$458.59 incl. vat

duration: 25 hours |

Language: English (US) |

access duration: 180 days |

Details

This course is designed to take your C++ skills to the next level. It delves deep into the intricacies of the C++ language and covers advanced topics that are essential for building robust and efficient applications. The course begins by exploring C++ stream handling, teaching you how to read data from files using ifstream and write data to files using ofstream. It then delves into exception handling, providing a thorough understanding of how to throw and catch exceptions, manage object slicing, and work with the noexcept keyword, ensuring that your code is resilient to errors.

As you progress through the course, you'll learn to use containers, including sequence containers and associative containers, and learn how to leverage STL algorithms effectively. The course also introduces you to the world of functional programming in C++, covering first-class functions, function pointers, function objects (functors), and lambda expressions. You'll gain proficiency in overloading the call operator and understand the nuances of context capture and closures. The course concludes with a hands-on exploration of the Simple and Fast Multimedia Library (SFML), enabling you to create and manage windows, handle events, draw graphical entities, and develop complete multimedia applications.

Result

By the end of this course, you'll have a deep understanding of advanced C++ programming techniques, exceptional error-handling skills, and the ability to build sophisticated applications and multimedia games.

Prerequisites

Basic knowledge of programming languages is recommended. Additionally, it is recommended to first follow parts 1 and 2 of the learning path ‘’Develop your knowledge in Programming in C++’’:

  • Part 1: Getting started with C++
  • Part 2: Object-oriented Concepts in C++

Target audience

Software Developer

Content

Develop your knowledge in Programming in C++ - Part 3: Advanced Concepts in C++

25 hours

File Handling in C++: Working with File Streams

C++ structures different file stream classes into an inheritance hierarchy. Input and output (I/O) operations are performed in C++ through streams, which act as intermediaries between the program and I/O devices, allowing programmers to not focus on how the actual device works. In this course, learn about the different classes and objects for C++ stream handling. Next, discover how to read data from files using objects of the ifstream class. Finally, practice writing out data to files using objects of the ofstream class, including writing out simple integers, floats, strings, and structured data. Upon completion, you'll be able to enumerate C++ file stream classes, read data from files using ifstream, and write data to files using ofstream.

File Handling in C++: Performing Advanced File Stream Operations

The insertion and extraction operators are very commonly overloaded in custom C++ classes. Such overloads make it easy to write objects out to cout or to file and read objects in from cin or a file. In this course, learn how to correctly overload the insertion and extraction operators for streams and explore different aspects of text data streaming. Next, work with different file open modes, including read, write, append, and ate modes. Finally, practice using the stream state bits contained within stream objects. Upon completion, you'll be able to leverage file open modes, check stream state bits, and correctly use the std::filesystem API.

Exception Handling in C++

Exceptions are the most popular form of error handling and the try-catch block is superior to all other error handling mechanisms because it forces the invoking function to manage the errors. In this course, learn how exceptions are thrown and caught. Next, practice creating and using custom exception objects and discover why exceptions must be caught by reference. Finally, explore object slicing results, the semantics and limitations of the noexcept keyword, and the pitfalls of exceptions that occur within constructors. Upon completion, you'll be able to correctly throw and handle exceptions using try/catch blocks, enumerate semantics and limitations of the noexcept keyword, and mitigate problems related to exceptions thrown during the construction of an object.

C++: Working with Sequence Containers

In C++, containers are structures that store collections of other objects known as elements. Sequence containers are used to store elements of the same type sequentially in a linear arrangement, and associative containers store elements in the form of key-value pairs. In this course, work with basic sequence containers called arrays, as well as vectors. Next, learn about forward lists and lists, which are sequence data structures that allow constant time insert and erase operations. Finally, discover how to work with deques (double-ended queues) and container adapters, including stacks, queues, and priority queues. Upon completion, you'll be able to contrast sequence and associative containers, enumerate properties, and correctly use stacks, queues, and priority queues.

C++: Working with Associative Containers & Algorithms

Associative containers provide fast lookup in O(log n) time by associating each entry with a key. Sets and maps are both associative containers. Algorithms are classes that support container-agnostic operations performed on containers. In this course, learn how to create sets and iterate over them, as well as use ordered and unordered multisets. Next, practice creating maps and indexing into them using keys, as well as inserting key-value pairs into maps. Finally, examine how random access of elements is faster with unordered maps compared to ordered maps, and explore various STL algorithms. Upon completion, you'll be able to differentiate between sequence and associative containers, leverage STL algorithms, and instantiate and use sets, multisets, maps, and multimaps.

First-class Functions in C++: Defining & Using First-class Functions

While C++ is considered an object-oriented language, it provides support for functional programming, including support for first-class functions in three manners: function pointers, function objects, and lambdas. In this course, discover the complexity of C-style function pointers by creating them and invoking functions through them. Next, learn about the various features and uses of function pointers and how to accept functions as input arguments and return functions from a higher-order function. Finally, examine function objects (functors) and use them to overload the call operator, instantiate objects, and use the overloaded call operator. Upon completion, you'll be able to list the properties of C++ first-class functions, create function pointers, return functions from a higher-order function, and define and invoke a functor.

First-class Functions in C++: Using Lambdas & Closures

In C++, a lambda expression is an ad-hoc, locally scoped function object that offers a function definition syntax. Lambdas can be stored in variables and invoked like function objects or function pointers, but lambdas go further by supporting context capture. In this course, learn how to define and invoke lambda functions and pass and return input arguments to and from lambdas using the Standard Template Library (STL) algorithms. Next, explore how context capture works in lambdas and implement closures. Finally, work with context capture to specify captured variables and whether the capture is by copy or by reference. Upon completion, you'll be able to define and invoke a lambda function, perform context capture by value and by reference, and define closures inside class methods.

C++: Introduction to Graphics with SFML

Simple and Fast Multimedia Library (SFML) is a cross-platform, software development library used for designing gaming applications, providing features like audio, graphics, and a network, which together allow you to build the complete multimedia experience. Begin by creating and managing windows that can hold multimedia gaming applications. Learn how to keep a game constantly running and updated using a game loop. Next, explore event handling in SFML, including mouse clicks, scrolls, keypress events, resize, and focus events. Finally, use the Graphics module in SFML to draw graphical entities, like geometric shapes, to the screen and configure the properties of these entities. When you have completed this course, you will have the foundational knowledge to create and render graphical entities within SFML windows.

C++: Creating a Complete Game in SFML

Multimedia applications require a number of different entities to come together - graphical entities, animations, views, audio, and networking. SFML's modules allow you to incorporate all of these in an easy and intuitive manner to build fully-fledged gaming applications. First, explore graphics entities such as textures and sprites to specify backgrounds and interact with different textures. Next, use vertex arrays to create and transform shapes by moving, rotating, and scaling entities. Then, create animations and play sounds using SFML. Finally, bring everything together to build a multimedia game of Tic-Tac-Toe, containing the logic for win-lose-draw. After completing this course, you will have the skills and ability to use SFML constructs to develop gaming applications.

Advanced Concepts in C++

In the Advanced Concepts in C++ lab, you will work with file streams, binary files, sequence containers, and associative container and algorithms. You will also use Lambdas and graphics with SFML, perform exception handling, and draw textures and sprites using SFML.

Final Exam: Advanced Concepts in C++

Final Exam: Advanced Concepts in C++ will test your knowledge and application of the topics presented throughout the Advanced Concepts in C++ track of the Skillsoft Aspire Programming in C++ Journey.

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