Course Overview
This course is intended for C++ developers who wish to update and refresh their C++ skills, especially those who have been using other languages for several years. You will learn about the new language features, how they make programming in C++ less painful and more productive, and how to use them idiomatically,
If you're used to traditional C++, Modern C++ will feel like a different language. It is safer, more expressive and more efficient. With Modern C++, you no longer need to work with explicit pointers to memory, which you have to allocate and release yourself. Complex loops can be greatly simplified, or even avoided altogether. Better abstractions remove the amount of "boilerplate" code you have to type in, leaving you free to concentrate on the problem you are trying to solve.
Modern C++ will reduce your development time and make your code easier to maintain and more likely to be correct and efficient. It avoids many situations which cause undefined program behaviour, resulting in less time spent on debugging and fewer defect reports.
The course begins with a review of C++ as of the 1998/2003 standards, including exceptions, templates and the Standard Template Library. If you have not used C++ for some time, this will allow you to revise and refresh your existing knowledge.
We then cover the changes in 2011 and 2014, starting with the core language and the standard library. Important new features such as lambda expressions, move semantics and multithreading have their own sections. Another section covers the most important features in C++17, which is the most recent widely-used version in industry. Finally, there is some advice on how to use good practice when writing Modern C++ code.
Each lecture contains a demonstration of the features being covered and has downloadable resources: the source code used in the video, exercises and solutions for the exercises. These are fairly simple and test your understanding of the topic you have just learnt.
There are also occasional assignments. These are more challenging than the lecture exercises.
After successfully completing this course, you will have a good knowledge of the new features in Modern C++ and how to use them.
FAQ
FAQ area empty
Course curriculum
-
History of C++
390 Xem trước -
Local Variables and Function Arguments
582 -
Local Variables and Function Arguments
-
Classes and Special Member Functions
510 Xem trước -
Classes and Special Member Functions
Xem trước -
Array, String and Vector
629 Xem trước -
Classes and Strings
-
Iterators
496 -
Iterators
-
Algorithms
409 -
Sequential Containers
478 -
Associative Containers
403 -
Associative Containers Practical
539 -
Pairs
-
Container Adapters
570 -
Operator Overloading
372 -
Algorithms with Predicates
435 -
Sequential Containers Part 1
-
Classes and Inheritance
480 -
Virtual Functions and Polymorphism
690 -
Overload vs override
-
Inheritance
-
The Friend Keyword
248 -
Exceptions
523 -
The throw() Exception Specifier
175 -
Templates
417 -
Namespaces
391 -
Synthesized Member Functions
423 -
Resource Managment
312 -
Casting
495 -
Run-time Type Information
435 -
Copy Elision
549 -
Miscellaneous C++98 features
374 -
Buffer Manager Class
-
Types and Literals
397 -
User-defined Literals
894 -
Declaration and Initialization
583 -
Universal Initialization
-
Enums
315 -
Automatic Type Deduction
800 -
Automatic Type Deduction
-
Loops
555 -
Auto and for loops
-
Sequential Containers Part 2
-
Constructors
446 -
Delete and Default Keywords
425 -
Conversion Operators
464 -
Inheritance
465 -
The noexcept keyword
307 -
Inline Namespaces
341
-
Initializer Lists
254 -
Containers and insert()
399 -
Containers and emplace()
468 -
Tuples
580 -
Std::array
446 -
Miscellaneous Containers
633 -
Binding Arguments
521 -
Callable Objects
444 -
Random Numbers
603 -
Time
508 -
Mathematical Types
286 -
Bitsets
182 -
Miscellaneous Library Features
434 -
Random Number Algorithms
364 -
Modern C++ Library Workshop
-
Constructors and Argument Deduction
587 -
Structured Bindings
302 -
Structured Bindings and Maps
328 -
If Statements in C++17
461 -
Switch Statements in C++17
329 -
Copy Elision
399 -
Converting Strings to Numbers
657 -
Converting Numbers to Strings
485 -
String View Overview
268 -
String View Usage
417 -
String View Caveats
463 -
Vocabulary Types Introduction
125 -
Variant Type
482 -
Variant Type Applications
428 -
Optional Type Introduction
235 -
Optional Type
273 -
Any Type
382 -
Map Insertion
328 -
Map Emplace
319 -
Constexpr If Statement
387 -
Constexpr If Continued
243
Requirment
-
Knowledge of C++ at Intermediate level (inheritance, STL, etc)
-
Access to a compiler which supports C++14 or above
-
Understanding of multi-threading concepts
Outcomes
-
Refreshed knowledge of older C++
-
The new language features in modern C++
-
How to use modern C++ to write code which is safer, more expressive and more efficient
-
How to write multi-threaded code in modern C++
0 Student
1 Course
0 review