Понимание объектно-ориентированной парадигмы через программирование на C

Ну, на днях: у двух моих друзей был извечный спор о том, какой язык программирования больше всего расширяет возможности разработчика. Один поддерживал C , так как он дает вам больше контроля над памятью и позволяет вам общаться напрямую с оборудованием. Другой приветствовал Java, так как он может поставить вас на место в индустрии программного обеспечения и позволяет вам моделировать проблемы из-за строгой приверженности объектно-ориентированному подходу. концепции. Это заставило меня задуматься, возможно ли воспроизвести (некоторые из них, даже если не все) концепции ООП во всемогущем C?

Благодаря Mr. Раду Григорас из Гамбургского университета, я смог развенчать эти концепции в C. Пожалуйста, позвольте мне поделиться ими с вами.

В отличие от современного объектно-ориентированного языка, такого как C++, Java, Python; C не предлагает никакого синтаксического сахара для получения объектно-ориентированного кода. Если вы не знакомы с объектно-ориентированной парадигмой, пожалуйста, прочтите эту статью.

В качестве примечания я хотел бы упомянуть, что мотивация написания этой статьи состоит в том, чтобы держать C под микроскопом и анализировать, может ли он реализовать парадигму или нет.

У этого подхода есть и некоторые недостатки:

  1. Код довольно усложняется из-за отсутствия синтаксического сахара.
  2. Существует вероятность того, что вы потеряете безопасность типов.
  3. Есть ручное управление памятью.
  4. Производимый код подвержен ошибкам.
  5. Самое главное, это длительный процесс.

Предполагая, что вы поняли основы ООП, теперь я перейду к реализации некоторых принципов ООП с помощью C, используя structs, pointers и другие замечательные вещи.

Классы

Мы создадим класс Rectangle, который будет иметь координату X, координату Y и размеры (ширину и высоту). Существует также метод draw, который выводит сообщение со всеми значениями.

Это конец части 1. Мы будем объединять все функции во Часть 2. Наконец, спасибо Abhimuralidharan за то, что написал это. Если у вас есть 12 секунд, я хотел бы прочитать ваш комментарий ниже..Если этот пост был полезен, пожалуйста, нажмите кнопку аплодисментов 👏ниже несколько раз, чтобы выразить свою поддержку! сильный>⬇⬇