Difference between revisions of "Intermediate C++ Game Programming Tutorial 19"

From Chilipedia
Jump to: navigation, search
(Video Timestamp Index)
(Video Timestamp Index)
Line 55: Line 55:
 
* Using RTTI (Runtime Type Information) [https://youtu.be/g-NGBFCn3co?t=13m01s 13:01]
 
* Using RTTI (Runtime Type Information) [https://youtu.be/g-NGBFCn3co?t=13m01s 13:01]
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
** To use RTTI, include <code><typeinfo></code> and use operator <code>typeid()</code> to obtain the type id of any dynamic type
+
** To use RTTI, #include <code><typeinfo></code> and use operator <code>typeid()</code> to obtain the type id of any dynamic type
 
** Use case: check if two objects are of the same derived class: <code>if( typeid(f1) == typeid(f2) )</code>
 
** Use case: check if two objects are of the same derived class: <code>if( typeid(f1) == typeid(f2) )</code>
 
** <code>typeid()</code> returns an object of type <code>std::type_info</code>
 
** <code>typeid()</code> returns an object of type <code>std::type_info</code>

Revision as of 05:59, 16 October 2019

In this video Chili teaches us how to figure out what our polymorphic pointers are actually pointing to (aka "type discovery"). Just note that although we can do this, it is generally a weaksauce way to go about things. Virtual functions are 1000% more hype than type discovery bullshit. Oh yeah, we also finally see all the C++ style casts united.

Topics Covered

  • dynamic_cast<T*> and dynamic_cast<T&>
  • const_cast
  • Overview of all C++ style casts
  • RTTI with typeid()
  • The type_info class

Video Timestamp Index

Tutorial 19

[Expand]
  • Using dynamic_cast<new-type>(expression) to determine to what derived type a pointer to a polymorphic base type is actually pointing 0:54
  • Using static_cast<>() to convert pointers within an inheritance hierarchy 6:20
  • Using const_cast<>() to remove a const from a reference or pointer (yes, you read that right) 7:27
  • Overview of different types of casts 9:30
  • Using RTTI (Runtime Type Information) 13:01
  • The type_info class 15:05

Source Code

Note that the code for this video is in a different branch called "casting". You will not find it in the master branch.

See also