URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10371
[ Назад ]

Исходное сообщение
"Полиморфизм в Ср"

Отправлено Anonymooum , 28-Мрт-21 14:12 
Всегда были проблемы с такого рода проектированием.

Вот пример:
```c
typedef struct ca_str { int a;  } ca_type;
typedef struct cb_str { char b; } cb_type;

struct p_str {
  c_type *c;
  /* must be pointer to
     ca_type or cb_type
  */
};
```

В `struct p_str` должен быть указатель или на `ca_type`, или же на `cb_type`. Желательно, один и тот же указатель.
Из моих изобретений – можно держать указатели на все возможные структуры, все ненужные из которых делать тотальным `NULL`, но это совершенно неприятно.

Как это делают программисты?


Содержание

Сообщения в этом обсуждении
"Полиморфизм в Си"
Отправлено Anonymooum , 28-Мрт-21 14:14 
Перепутал, должен быть полиморфизм в си.

"Полиморфизм в Ср"
Отправлено Аноним , 28-Мрт-21 22:36 
> должен быть указатель или на желательно, один и тот же указатель.
> Из моих изобретений – можно держать указатели но это совершенно неприятно.
> Как это делают программисты?

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


"Полиморфизм в Ср"
Отправлено nekto , 28-Мрт-21 22:43 
>> должен быть указатель или на желательно, один и тот же указатель.
>> Из моих изобретений – можно держать указатели но это совершенно неприятно.
>> Как это делают программисты?
> тежыло тибя четать. праграмизды юзают пустые указатили если "полимарфизма" хочецо.

сoxже, на электopнный мешок, cyдя по стилю англиканского npoисoхждения


"Полиморфизм в Ср"
Отправлено Anonymooum , 29-Мрт-21 19:38 
Был бы я электронный… Если это в мой адрес.

"Полиморфизм в Ср"
Отправлено nekto , 28-Мрт-21 22:38 
>

void *, tagged union(аля switch) - в поисковике можно покопать, сорцы разные почитать
.. вообще скользкая тема


"Полиморфизм в Ср"
Отправлено Anonymooum , 29-Мрт-21 19:37 

Спасибо! Рассказали про ссылки в union, мне очень понравились.



"Полиморфизм в Ср"
Отправлено Achkins , 29-Апр-21 22:02 
Делать штуки нулями - запутывающая практика, затрудняющая разбор работы софта после.