Mô tả

Learn C++ in depth with modern features introduced with C++11/14/17

Updated with C++17 features!

C++ is a general purpose programming language invented by Bjarne Stroustrup. It is still one of the more popular programming languages, used for creating high performance applications across a wide variety of domains & platforms.

In 2011, C++11 was born. This revision added lot of new features to the language and it got a new name, Modern C++. This emphasizes writing C++ code using modern features of the language such as move semantics, automatic type inference, threading, lambda expressions, smart pointers and a lot more. C++11 was followed by C++14, that added even more features and enhanced existing ones. C++17 released in 2017 added a filesystem library (covered in the course), parallel versions of STL algorithms, new library types such as std::optional, std::any and more.

This course teaches C++ as an object oriented language with modern features. It focuses on teaching C++ concepts, both old and new, with clear examples. It builds upon the basic language facilities that are then used to build more complex programs with classes, operator overloading, composition, inheritance, polymorphism, templates, concurrency, etc. It even digs deep into assembly to understand few concepts better. After every few topics, a quiz is presented that tests your understanding of the previous topics. Have fun learning Modern C++.

Note that this course is not for you if

  1. You have never programmed before

  2. You don't know ANY programming language

  3. You want to learn basics of programming

Update [April 19, 2020] : Biggest update so far. Added C++17 core language changes, template enhancement and new library types.

Update [April 11, 2020] : Added content on copy elision, type traits, static_assert & generalized lambda capture, C++11 unions

Update [Mar 25, 2020]: XCode installation & high-level concurrency (std::async)

Update [Mar 1, 2019] : More videos added for memory management with smart pointers (shared_ptr, unique_ptr, weak_ptr_)

Update [Oct 19, 2017] :Instructions added for installing Visual Studio Community 2017, Cevelop (Eclipse) & Code::Blocks

Update [Sep 29, 2107] : Added more content on dynamic memory allocation (malloc, new[], 2D arrays, strings)

Update [Sep 16, 2017] : C++ concurrency (std::thread, std::mutex, etc)

Update [April 27, 2017] : Templates, Function Object, Lambda Expressions, Standard Template Library

Update [Mar 23, 2017] : Virtual Inheritance, Exception handling, File I/O, std::filesystem (C++17)

Update [Mar 4, 2017] : Strings, stringstreams, enums, inheritance, polymorphism

Update [Feb 25, 2017] : Source Code of existing topics added

Bạn sẽ học được gì

Use C++ as an object-oriented language

Demystify function & class templates

Use STL components in your applications

Write real-world applications in C++

Apply Modern C++ (C++11/14/17) in programs

Yêu cầu

  • Basic programming knowledge in any computer language
  • Some experience of writing programs in any language
  • Modern C++ compiler, preferably Visual Studio 2015/17/19 Community (or XCode, Clang, g++, Cevelop, Eclipse CDT, Code::Blocks)

Nội dung khoá học

19 sections

Start Here

10 lectures
Introduction
03:01
Source Code
00:02
Course Slides
00:11
Required software
00:31
Visual Studio 2015 Installation (DEPRECATED)
04:32
Visual Studio 2017 Installation (DEPRECATED)
02:44
Visual Studio 2019 Installation
05:24
Code::Blocks Installation
05:06
Cevelop Installation
05:31
XCode Installation on MacOS
03:32

Basic Language Facilities

27 lectures
What is C++?
03:31
First C++ Program
09:12
The C++ Compilation Process
03:09
Primitive Types & Variables
07:57
Basic Input/Output
05:56
Functions Basics - Part I
09:13
Functions Basics - Part II
09:05
Overview of Debugging in Visual Studio
05:40
Uniform Initialization (C++11)
09:21
Pointers
08:25
Assignment
00:17
Reference
05:32
Assignment
00:12
Reference Vs Pointer
06:58
The const Qualifier
04:19
const Qualifer & Compound Types
07:30
Assignment
00:23
Automatic Type Inference (C++11)
07:00
Basics Quiz - I
5 questions
Range-Based For Loop - I (C++11)
04:32
Range-Based For Loop - II (C++11)
07:02
Function Overloading
13:27
Default Function Arguments
03:43
Inline Functions
07:36
Function Pointers
04:53
Namespace
09:24
Basics Quiz - II
7 questions

Memory Management - Part I

5 lectures
Dynamic Memory Allocation - Part I (malloc function)
09:36
Dynamic Memory Allocation - Part II (new operator)
06:19
Dynamic Memory Allocation - Part III (new[] operator)
06:40
Dynamic Memory Allocation - Part IV (2D arrays)
05:07
Dynamic Memory Allocation - Source Code Only
00:02

Classes & Objects

13 lectures
Object Oriented Programming Basics
05:50
Class
05:31
Constructor & Destructor
04:28
Structures
02:38
Non-static Data Member Initializers (C++11)
04:39
this Pointer
04:46
Static Class Members
05:12
Constant Member Functions
03:14
Copy Constructor - Part I
04:52
Copy Constructor - Part II
04:40
Delegating Constructors (C++11)
04:01
Default & Deleted Functions (C++11)
05:18
Quiz I
8 questions

Move Semantics

7 lectures
L-values, R-values & R-value References (C++11)
07:10
Move Semantics - Basics (C++11)
03:23
Move Semantics - Implementation (C++11)
04:12
Rule of 5 & 0
14:30
Copy Elision
09:01
std::move Function (C++11)
07:52
Quiz
7 questions

Operator Overloading

14 lectures
Operator Overloading Demo Code
00:05
Operator Overloading - Part I (Basics)
08:28
Operator Overloading - Part II (Assignment Operator)
04:18
Operator Overloading - Part III (Global Overloads)
05:48
Operator Overloading - Part IV (Friend Keyword)
02:29
Operator Overloading - Part V (Smart Pointer Basics)
05:04
Operator Overloading - Part VI (Smart Pointers in C++11)
04:34
Operator Overloading - Part VII (Rules)
01:55
Type Conversions - Part I (Basics)
05:56
Type Conversions - Part II (Primitive to User Type)
05:39
Type Conversions - Part III (User to Primitive Type)
02:50
Type Conversions - Part IV (User Defined to User Defined)
04:38
Initialization Vs. Assignment & Member Initialization List
05:18
Quiz
8 questions

Memory Management - Part II

11 lectures
Raw Pointers
05:11
std::unique_ptr
10:11
Sharing Pointers
06:09
Sharing std::unique_ptr
04:34
std::shared_ptr
05:18
Weak Ownership
08:49
std::weak_ptr Internals
06:26
Circular References
10:27
Deleter
07:05
Dynamic Arrays
03:26
Make Functions
05:41

More C++ Goodies

15 lectures
Enums - Part I (Basics)
03:42
Enums - Part II (Scoped Enums C++11)
05:32
Strings - Part I (Raw Strings)
06:49
Strings - Part II (std::string)
11:41
Assignment I
00:14
Strings - Part III (String Streams)
09:45
Assignment II
00:24
User-Defined Literals
05:59
Constant Expressions - constexpr (C++11)
09:24
std::initializer_list (C++11)
08:27
Dynamic Array (std::vector)
08:43
Assignment III
00:19
Union - I
04:51
Union - II
04:56
Quiz
5 questions

Object Oriented Programming

19 lectures
Account Hierarchy Source Code
00:06
Inheritance & Composition
06:01
Inheritance & Access Modifiers
03:55
Project - I (Introduction)
02:06
Project - II (Account & Savings Class)
06:59
Assignment - Error Handling
00:05
Assignment
00:14
Project - III (C++11 Inheriting Constructors)
06:31
Project - IV (Virtual Keyword)
08:53
Quiz I
6 questions
Project -V (Virtual Mechanism Internals - I)
07:11
Project -VI (Virtual Mechanism Internals - II)
06:42
Project - Part VIII (override & final specifier in C++11)
06:13
Project - VIII (Object Slicing)
05:45
Project - IX (typeid Operator)
07:11
Project - Part X (dynamic_cast Operator)
06:08
Abstract Class
06:03
Multiple (Diamond) Inheritance
09:22
Quiz II
5 questions

Exception Handling

7 lectures
Exception Handling - Part I (Basics)
07:59
Exception Handling - Part II (Multiple Catch Blocks)
03:58
Exception Handling - Part III (Stack Unwinding)
06:31
Exception Handling - Part IV (Nested Exceptions)
05:11
Exception Handling - Part V (Constructor & Destructor)
07:06
Exception Handling - Part VI - (noexcept keyword in C++11)
08:20
Quiz
5 questions

File Input & Output

11 lectures
Raw String Literals (C++11)
04:03
Introduction to Filesystem Library (C++17) (DEPRECATED)
03:49
File IO - Part I (Basics)
06:44
File IO - Part II (Error Handling)
05:43
File IO - Part III (Copy Utility)
03:29
File IO - Part IV (Character IO & Seeking)
07:22
File IO - Part V (Binary IO)
08:30
Assignment I
00:22
Assignment II
00:15
File Copy Utility Source
00:05
File IO
4 questions

Templates

22 lectures
Source Code
00:03
Introduction to Templates
07:48
Assignment I
00:15
Template Argument Deduction & Instantiation
06:28
Assignment II
00:05
Explicit Specialization
05:54
Non-type Template Arguments
07:14
Assignment III
00:13
Perfect Forwarding - Part I (C++11)
07:23
Perfect Forwarding - Part II (C++11)
05:32
Variadic Templates - Part I (C++11)
09:47
Variadic Templates - Part II (C++11)
04:50
Assignment IV
00:14
Class Templates
08:39
Class Template Explicit Specialization - Part I
05:41
Class Template Explicit Specialization - Part II
04:02
Assignment V
00:09
Class Template Partial Specialization
06:52
Typedef, Type Alias & Alias Templates (C++11)
08:07
Type Traits (C++11)
07:21
static_assert (C++11)
04:19
Templates
8 questions

Lambda Expressions (C++11)

11 lectures
Lambda Expressions Source Code
00:03
Callbacks Revisited - Function Pointers
06:39
Callbacks - Function Objects
06:57
Lambda Expressions
04:36
Lambda Expressions - Internals
05:01
Lambda Expressions Capture List - Part I
08:25
Lambda Expressions Capture List - Part II
04:08
Lambda Expressions Capture List - Part III
05:57
Generalized Lambda Capture
04:33
Assignment
00:14
Quiz
5 questions

Function Wrappers

5 lectures
std::function - I
02:02
std:;function - II
06:36
std::bind - I
02:59
std::bind - II
09:08
std::bind - III
06:22

Standard Template Library

23 lectures
Introduction
02:50
std::array (C++11)
04:02
std::vector
04:38
std::deque
02:21
std::list & std::forward_list (C++11)
04:59
Sequence Containers Demo Code
00:02
std::set & std::multiset
05:42
std::map & std::multimap
07:35
Associative Containers Demo Code
00:03
Unordered Containers (C++11) - I
04:38
Unordered Containers (C++11) - II
05:48
std::hash (C++11)
03:48
Unordered Containers Demo Code
00:02
Big O Notation & Performance of Containers
05:04
Algorithms - Part I
08:15
Algorithms - Part II
07:04
Container Changes in C++11 - I
06:33
Container Changes in C++11 - II
04:06
Container Changes in C++11 - III
06:20
Container Changes in C++11 - IV
02:28
Container Changes in C++11 - V
07:00
STL Project
00:20
Quiz
8 questions

C++ Concurrency

14 lectures
Concurrency Source Code
00:03
Concurrency Basics
05:43
Thread Creation (std::thread)
05:47
Passing Arguments To Threads
04:18
Returning Value from Threads
08:17
Thread Synchronization (std::mutex)
06:17
std::lock_guard
02:45
std::thread Functions & std::this_thread Namespace
07:48
Task Based Concurrency - Part I
05:07
Task Based Concurrency - Part II
03:44
Launch Policies
04:38
std::future Wait Functions
05:07
Using std::promise
05:36
Propagating Exceptions Across Threads
03:15

C++17 Core Language Features

14 lectures
Source Code Information
00:14
Deprecated & Removed Features
03:53
Changes
03:12
Attributes
05:58
Feature Test Macros
05:51
If & switch With Initialization
07:56
inline Variables
05:45
Nested Namespaces
01:51
noexcept
03:35
constexpr Lambda
07:47
Structured Bindings
08:07
Expression Evaluation Order
06:36
Mandatory Copy Elision - I
04:28
Mandatory Copy Elision - II
04:33

C++17 Template Features

8 lectures
Class Template Argument Deduction (CTAD)
05:41
Folding Basics
04:05
Fold Expressions - Unary Folds
04:27
Fold Expressions - Binary Folds
05:51
Fold Expressions - Recap
02:34
Type Traits Suffixes
03:22
if constexpr - I
07:42
if constexpr - II
04:42

C++17 Standard Library Components

17 lectures
std::optional - I
05:18
std::optional - II
03:50
std::optional - III
03:38
std::variant - I
05:57
std::variant - II
04:34
std::variant - III
05:58
std::any
06:33
std::string_view - I
08:39
std::string_view - II
08:13
Filesystem - path
05:49
Filesystem - directory_entry
07:00
Filesystem - Directory Functions
05:09
Filesystem - Permissions
05:44
Parallel Algorithms - I
03:49
Parallel Algorithms - II
07:32
Parallel Algorithms - III
04:24
BONUS LECTURE
00:01

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.