I’m having quite a lot of trouble understanding polymorphism.
From what I understand polymorphism can be categorized into compile time and run time polymorphism.
Compile-time has function overloading and operator overloading, whereas run time has virtual functions (according to this).
Also, there is preprocessing, overloading, templates, and virtual dispatch (here) … plus ad-hoc, parametric, subtype (aka inclusion), and coercion (aka casting) (here). In addition, in Sam’s video, he also talks about sub-classes?
Just getting a bit confused with all the names flying around…
Which names are synonyms and which are distinct concepts? And maybe some examples would be helpful.
Thanks in advance!