The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Обзор проблем в коде на C/C++, вызванных неопределённым пове..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Обзор проблем в коде на C/C++, вызванных неопределённым пове..." –1 +/
Сообщение от Orduemail (ok), 08-Июл-17, 14:05 
> Ещё через 5 лет стиль ещё сильнее "отточится" на +200 страниц к стандарту. И выйдет ещё литература, объясняющая новые костыли проблемами старых.

Да. Программирование не стоит на месте, развивается. Методов всё больше. Какой кошмар.

> Сейчас я тебе кое-что покажу:
> Вот класс - это изначально структура данных + набор методов с ней.
> В с++ структура и методы принудительно жёстко связаны. А если я
> захочу написать один метод для 3х классов?

Если ты захочешь, то это значит что ты неудачник. Либо тебе досталась уродская задача, либо ты выбрал не тот подход к её решению. Если у тебя есть три аргумента, каждый из которых является дочерним от класса A, и таких дочерних классов у A три штуки -- B, C, D, то тебе придётся писать 3^3 реализаций методов -- (B, B, B), (B, B, C) (C, D, B), (C, C, D), и так далее. 27 долбаных функций. Если ты добавишь к A ещё один дочерний класс, то количество методов скакнёт до 64. Поверь мне, ты повесишся раньше, чем допишешь эту программу. Причём вне зависимости от выбранного языка: этот заморочный диспатч можно сделать хоть на ассемблере, проблем-то? Но вот степенная зависимость количества реализаций методов от количества типов -- это убийственно.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Обзор проблем в коде на C/C++, вызванных неопределённым пове..., opennews, 07-Июл-17, 11:12  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру