Difference between revisions of "Intermediate C++ Game Programming Tutorial 6"
From Chilipedia
(→Video Timestamp Index) |
|||
Line 45: | Line 45: | ||
[https://github.com/planetchili/intlo GitHub Repo for tutorial]<br /> | [https://github.com/planetchili/intlo GitHub Repo for tutorial]<br /> | ||
[https://github.com/planetchili/Memesweeper GitHub Repo for homework (Memesweeper)] | [https://github.com/planetchili/Memesweeper GitHub Repo for homework (Memesweeper)] | ||
− | |||
− | |||
− | |||
− | |||
== Homework == | == Homework == | ||
− | |||
− | |||
− | |||
Revision as of 21:40, 15 July 2017
This tutorial is epoch-making, DO NOT SKIP IT. The ostensive main topic for this video is destructors, but that is not where its soul lies. After learning about dtors, we are ready to discuss a matter that is at the heart of C++: RAII. This will form the bridge between low-level memory management, and high level smart objects. We also discuss the important concept of deep copying and the Rule of 3, and related to this, we review the 4 original special member functions. AND there are discussion of a bunch of other random bullshit, like converting construction for example. It's a big video is what I'm tryin' to say here.
Topics Covered
- RAII (Resource Allocation Is Initialization)
- Deep Copy vs. Shallow Copy
- Rule of 3 / Rule of 0
- Destructors
- Special Member Functions
- Converting Constructors
-
explicit
Keyword for Constructors - Copy Construction with Assignment operator
=
- Constructing with
()
vs. with{}
- Deleting Special Member Functions with
= delete
- Conditions when Special Members Cannot be Generated by Compiler
Notes
Video Timestamp Index
- Announcing Member Functions
- Destructors
- RAII
- Special Member Functions
- Default Constructors
- Conditions when Default Ctor not Defined
- Conditions when Default Ctor Impossible for Compiler to Generate
- Copy Constructors
- Copy Assignment Operators
- Conditions when Copy Ctor Impossible for Compiler to Generate
- Copy Constructing with
=
- Converting Constructors
-
explicit
Constructors - Calling Constructors with
()
vs.{}
- Example of a Class that Manages a Resource
- Problem with Using Compiler-Generated Copy Ctor (Shallow Copy Problem)
- Problem with Using Compiler-Generated Copy Assign (Shallow Copy Problem)
- Deep Copy Assign
- Rule of 3
- Rule of 0
- Calling Copy Assign from Copy Ctor
- Explicitly Deleting Special Functions
- Homework
Source Code
GitHub Repo for tutorial
GitHub Repo for homework (Memesweeper)