On 1/29/23 22:09, RTM wrote:
> On Saturday, 28 January 2023 at 23:19:35 UTC, ProtectAndHide wrote:
>
>> That is, you can do OOP without classes
>
> How so?

OOP is about putting objects (data) and behavior (functions) together.

> Every OOP definition includes classes

OOP is possible in C, which does not have classes:

  void sing(Animal * animal);

That top-level sing function will do something like this:

  animal->sing(animal);

Every object has their own sing function pointer as a member. (Or one can go to a vtbl pointer approach with different pros and cons; I used all of this as an interview topic at some point.)

Programming languages just make it easy.

> (encapsulation + inheritance).

Encapsulation is available even in C as well. Inheritance can be achieved manually.

And I used C just because it does not provide any special OOP features.

Ali

Reply via email to