Mô tả

This course will enhance your knowledge of the technically challenging but powerful and efficient C++ programming language.

It is designed to give you an intermediate-to-advanced level understanding of the language. There is extensive coverage of the Standard Template Library, including standard algorithm functions. Finally, a project in which you will exercise your new skills by writing a simple game.

After successfully completing this course, you should be able to apply for jobs and courses which require a good knowledge of C++.

The material is based around the modern version of the language. I teach the C++11, C++14 and C++17 standards, but also cover older variations which are still widely used.

The course is thorough and goes into the material in depth. It assumes basic C++ knowledge, such as the material in my  course "Begin Programming with Modern C++": function calls, loops, conditionals and classes.

There are downloadable exercises for each video, with solutions, so you can check your understanding as you learn, gaining familiarity and confidence with the material.

I will be actively supporting the course and I will respond promptly if you have any questions or experience difficulties with the course content. Please feel free to use the Q&A feature or alternatively you can send me a private message.

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

Know and understand all the important features of modern C++

Acquire a good knowledge of the Standard Template Library, including algorithms ("the best-kept secret in C++")

Learn how to use modern C++ to write code which is safer, more expressive and more efficient

Throrough coverage of C++11, C++14 and the most important features of C++17

How to write a game using Modern C++ and the SFML graphics library

Yêu cầu

  • Some knowledge of C++ beyond beginner level
  • A compiler which supports C++11, preferably C++14 or C++17
  • Proficiency in English (B2 level, preferably C1)

Nội dung khoá học

16 sections

Introduction

3 lectures
Introduction to the Course
06:29
Lecturer Introduction
00:57
Source Code for this Course
00:07

Review of C++

25 lectures
Local Variables and Function Arguments
07:15
Reference and Value Semantics
06:16
Declaration and Initialization
10:14
Classes
04:57
Special Member Functions
06:23
Pointers and Memory
13:18
Array, String and Vector
09:05
Classes and Strings
3 questions
Conway's Game of Life Overview
04:35
Two-Dimensional Arrays
05:08
Conway's Game of Life Practical
06:14
Conway's Game of Life Practical Continued
11:49
Numeric Types and Literals
05:36
String Literals
06:16
Casting
07:42
Iterator Introduction
06:51
The auto keyword
09:28
Auto Keyword Quiz
1 question
Loops and Iterators
11:18
Iterator Arithmetic and Iterator Ranges
08:45
Iterator Arithmetic and Iterator Ranges Quiz
1 question
If Statements and Switch in C++17
12:23
Templates Overview
13:45
Namespaces
11:43
Function Pointer
05:36

C++ String Interface

8 lectures
Basic String Operations
07:18
Searching Strings
05:12
Adding Elements to Strings
08:32
Removing Elements from Strings
04:47
Converting between Strings and Numbers
07:32
Miscellaneous String Operations
06:26
Character Functions
12:45
Character Functions
2 questions

Files and Streams

16 lectures
Files and Streams
05:29
File Streams
10:21
Streams and Buffering
07:30
Unbuffered Input and Output
07:46
File Modes
07:18
Stream Member Functions and State
12:52
Stream Manipulators and Formatting
08:04
Floating-point Output Formats
07:00
Stringstreams
11:11
Files Workshop Part One
1 question
Files Workshop Part Two
1 question
Resource Management
05:02
Random Access to Streams
07:19
Stream Iterators
07:56
Binary Files
11:23
Binary File Practical
17:11

Special Member Functions and Operator Overloading

18 lectures
Constructors in Modern C++
08:25
Copy Constructor Overview
06:10
Assignment Operator Overview
08:18
Synthesized Member Functions
06:28
Shallow and Deep Copying
11:50
Copy Elision
08:36
Conversion Operators
09:51
Default and Delete Keywords
06:08
Operators and Overloading.
04:35
Which Operators to Overload
03:34
The Friend Keyword
04:08
Member and Non-member Operators
05:46
Addition Operators
08:30
Equality and Inequality Operators
03:38
Less-than Operator
06:38
Prefix and Postfix Operators
06:44
Function Call Operator
06:37
Printing Out Class Member Data
04:08

Algorithms Introduction and Lambda Expressions

15 lectures
Algorithms Overview
07:29
Algorithms with Predicates
05:32
Algorithms with _if Versions
05:49
Lambda Expressions Introduction
05:29
Algorithm with Lambda Expression
1 question
Lambda Expressions Practical
03:45
Lambda Expressions and Capture
07:29
Lambda Expressions and Capture Continued
09:51
Mutable Lambda
3 questions
Lambda Expressions and Partial Evaluation
06:55
Lambda Expressions in C++14
06:06
Generalized capture with initialization
4 questions
Pair Type
06:07
Insert Iterators
07:16
Library Function Objects
03:24

Algorithms Continued

26 lectures
Searching Algorithms
06:14
Searching Algorithms Continued
05:16
Numeric Algorithms
06:18
Write-only Algorithms
07:57
for_each Algorithm
03:17
Copying Algorithms
03:03
Write Algorithms
05:09
Removing Algorithms
04:35
Removing Algorithms Continued
06:32
Transform Algorithm
06:19
Merging Algorithms
03:53
Reordering Algorithms
05:34
Partitioning Algorithms
04:21
Sorting Algorithms
03:39
Sorting Algorithms Continued
06:21
Permutation Algorithms
04:01
Min and Max Algorithms
03:10
Further Numeric Algorithms
04:32
Further Numeric Algorithms Continued
06:30
Introduction to Random Numbers
03:48
Random Numbers in Older C++
04:37
Random Numbers in Modern C++
06:57
Random Number Algorithms
03:26
Palindrome Checker Practical
07:16
Random Walk Practical
07:41
Algorithms and Iterators Workshop
1 question

Containers

26 lectures
Container Introduction
02:49
Standard Library Array
04:47
Forward List
05:23
List
05:16
List Operations
05:49
Deque
05:13
Sequential Containers
4 questions
Sequential Containers Part Two
2 questions
Tree Data Structure
04:34
Sets
07:56
Map
09:40
Maps
4 questions
Maps and Insertion
04:02
Maps in C++17
07:49
Multiset and Multimap
04:29
Searching Multimaps
08:07
Unordered Associative Containers
07:22
Unordered Associative Containers Continued
04:04
Associative Containers and Custom Types
09:35
Nested Maps
05:15
Queues
06:06
Priority Queues
05:31
Stack
05:02
Emplacement
07:10
Mastermind Game Practical
11:06
Containers Workshop
00:06

Inheritance and Polymorphism

13 lectures
Class Hierarchies and Inheritance
02:40
Base and Derived Classes
05:23
Member Functions and Inheritance
04:41
Overloading Member Functions
03:10
Pointers, References and Inheritance
05:55
Static and Dynamic Type
04:08
Virtual Functions
04:54
Virtual Functions in C++11
05:23
Virtual Functions
5 questions
Virtual Destructor
06:15
Interfaces and Virtual Functions
08:03
Virtual Function Implementation
03:20
Polymorphism
06:00

Error Handling and Exceptions

17 lectures
Error Handling
03:39
Error codes and Exceptions
06:47
Exceptions Introduction
06:10
Try and Catch Blocks
06:53
Catch-all Handlers
05:53
Exception Mechanism
05:30
std::exception Hierarchy
05:59
Standard Exception Subclasses
05:16
Exceptions and Special Member Functions
04:09
Custom Exception Class
05:53
Exception Safety
03:27
The throw() Exception Specifier
03:32
The noexcept keyword
04:33
Swap Function
04:36
Exception-safe Class
04:26
Copy and Swap
05:15
Comparison with Java and C# Exceptions
05:26

Move Semantics

13 lectures
Move Semantics
05:13
Lvalues and Rvalues
06:05
Lvalue and Rvalue References
08:15
Value Categories
03:11
Move Operators
09:08
RAII Class with Move Operators
07:21
Move-only Types and RAII
07:38
Special Member Functions in C++11
04:02
Using Special Member Functions in C++11
05:47
Function Arguments and Move Semantics
07:00
Forwarding References
08:00
Perfect Forwarding
08:28
Perfect Forwarding Practical
03:17

Smart Pointers

10 lectures
Smart Pointers Introduction
05:58
Unique Pointer
08:17
Unique Pointers and Polymorphism
07:02
Unique Pointers and Custom Deleters
05:49
The Handle-Body Pattern
06:08
The pImpl Idiom
06:33
Reference Counting
10:59
Shared pointer
06:43
Weak Pointer
08:24
Weak Pointer and Cycle Prevention
03:22

Miscellaneous Features

19 lectures
Chrono Library Introduction
02:51
Chrono Duration Types
05:26
Chrono Clocks and Time Points
06:25
Bitsets
06:14
Tuples
06:21
Tuples in C++17
04:22
Unions
05:37
Unions Continued
06:57
Mathematical Types
06:40
Bind
07:33
Callable Objects
05:45
Member Function Pointers
06:38
Interfacing to C
10:50
Interfacing to C
2 questions
Run-time Type Information
07:23
Multiple Inheritance
06:14
Virtual Inheritance
04:53
Inline Namespaces
05:58
Attributes
07:13

Compile-time Programming

12 lectures
Compile-time Programming Overview
08:01
Constant Expressions
04:39
Constexpr Functions
06:49
Classes and Templates
05:32
Template Specialization
08:13
Extern Templates
09:18
Variadic Templates
09:33
Miscellaneous Template Features
05:07
Library-defined Operators
05:26
Constexpr If Statement
09:52
Constexpr If Examples
04:36
The decltype Keyword
09:03

Project: A Breakout Game Using Modern C++ with SFML

20 lectures
Project Breakout
01:28
SFML Introduction
03:07
Compiler Configuration for SFML
05:17
Basic Window
04:16
Random Walk Revisited
05:46
Sprite
06:30
Ball
04:09
Bouncing Ball
04:18
Paddle
03:03
Moving Paddle
04:26
Ball-Paddle Interaction
04:31
Bricks
04:48
Ball Interaction with Bricks
08:08
Game Manager
07:13
Entity Manager Overview
05:31
Entity Manager and Object Creation
08:22
Entity Manager and Object Operations
08:08
Brick Strength
06:34
More Features
08:11
Conclusion
04:23

Resources

5 lectures
Recommended Books
00:14
C++ "Cheat Sheet" Infographics
00:07
The "Awesome C++ Frameworks and Libraries" Github
00:05
The "Awesome Modern C++ Resources" Github
00:05
Bonus Material
00:07

Đá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.