0xZ0F / Z0FCourse_ReverseEngineering

Reverse engineering focusing on x64 Windows.
GNU Affero General Public License v3.0
5.16k stars 497 forks source link

Possible mistake in chapter 6.03 #28

Closed ninthseason closed 2 years ago

ninthseason commented 2 years ago

in chapter 6.03:

Function overriding allows for multiple functions of the same name that take different parameters. For example, you might want to have a function for addition. You'll probably want the ability to add integers or floats.

In my opinion, this chapter confuses funciton overriding and function overloading.

Such as in wiki:

Method overriding: The implementation in the subclass overrides (replaces) the implementation in the superclass by providing a method that has same name, same parameters or signature, and same return type as the method in the parent class.

Function overloading: In some programming languages, function overloading or method overloading is the ability to create multiple functions of the same name with different implementations. Calls to an overloaded function will run a specific implementation of that function appropriate to the context of the call, allowing one function call to perform different tasks depending on context.

I am new to reverse engineering, so maybe I made a mistake. Let me know if I am getting it wrong.

0xZ0F commented 2 years ago

You're correct, this is due to my laziness regarding what I deem to be semantics. Although the two are different, I often use the terms interchangeably as the word overriding, in either scenario, makes more sense to me. I see how this could lead to confusion and potentially be misleading for those who don't have a thorough understanding of C++, as well as anyone who strictly separates the terms unlike I do.

The specified chapter has been fixed, though I'm almost certain the issue occurs elsewhere. I will look more this weekend.

Thank you!

0xZ0F commented 2 years ago

Should all be fixed in 3e992b8f5bbf10305b757bc64c4f1f3ee14d2fab