Как реализовать полиморфизм - C (СИ)

Узнай цену своей работы

Формулировка задачи:

У меня товарищ ходил на собеседовании по работе и там у него спросили как реализовать полиморфизм в си(именно си а не с++) он не знал ответ на этот вопрос и я тоже не знаю . Если можно объясните как это можно сделать и небольшой пример кода был бы весьма кстати. Заранее спасибо .

Решение задачи: «Как реализовать полиморфизм»

textual
Листинг программы
struct obj {
  void (*method_one)();
  int   (*method_two)(int);
  ...
};

Объяснение кода листинга программы

  1. Структура obj объявлена с тремя полями:
    • method_one - указатель на функцию, которая будет вызвана для объекта типа obj, если вызвать метод с именем method_one.
    • method_two - указатель на функцию, которая будет вызвана для объекта типа obj, если вызвать метод с именем method_two.
    • ...
  2. В коде не объявлены сами функции, которые должны быть вызваны для объекта типа obj.
  3. Для объекта типа obj можно вызвать методы method_one и method_two, которые будут выполнять определенные действия, в зависимости от того, какие функции были определены в другом месте кода.
  4. Реализация полиморфизма достигается за счет того, что в структуре obj хранятся указатели на функции, а не сами функции. Это позволяет хранить в одном объекте указатели на разные функции, которые могут быть вызваны для этого объекта, в зависимости от контекста.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы