ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1450767 Топик полностью
Tyмблep (22.07.2024 16:43, просмотров: 214) ответил mse homjak на Ну и? Все процедуры должны быть вами написаны! Под требования ООП. Все "классы-предки", это просто абстракция. Физически, это, условно, функция, в которую передаётся условный указатель на список параметров конкретного жука. Которая вами написана. Вся роль "классовой боротьбы", это передача параметров(которые вы ужэ подготовили) в функции(котрые вы ужэ написали). Это всё хорошо и выгодно, если всю работу за вас сделал дядя, а вы только пользуетесь. Но дядя, как правило, не в
Просто хаос в голове. 

Классы-предки реально существуют, и я могу легко их использовать.

Что приводит к существенному росту производительности труда.

---

Итак, мы решили написать вышеупомянутый проект на С.

1. Пишем, значит, процедуры с параметрами.

И тут, вдруг, беда. Жуков то много, все разные. Не всё заранее учтёшь.

Написали все процедуры с 4-мя параметрами, а параметров надо 6.

Все прототипы функций переделывать. Потом ещё раз, надо 8.

2. Тогда объявим структуру данных, описывающий жук.

Будем передавать процедурам эту структуру.

Если добавятся параметры, прототипы процедур менять не придётся.

Поменяется содержимое структуры. Ура, всё получается.

Но для разных жуков иногда требуется разный набор процедур.. что делать ?

3. Объявим общие процедуры для всех операций, но со свичом. Для выбора конкретного алгоритма.

Наборы индексов свича для каждого жука будут свои - таким образом,

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

4. Делаем ещё одно мысленное усилие и понимаем, не нужен нам посредник в виде свича.

Давайте составим таблицу адресов необходимых процедур прямо в структуре, описывающий

конкретный чип.

---

Мы только что попытались изобрести С++, но синтаксис всё равно С.

Всё вышеуказанное постоянно используется С++ внутри - передача указателя

структуры в функцию, таблица виртуальных процедур. Это скрыто

от юзера, поскольку используется постоянно, делается автоматически и не интересно.

Если уж мы всё равно начали изобретать С++, тогда может лучше готовым воспользоваться ?