Не для холивара ради, а для осознания истинны, я хочу с вами продолжить дискуссию.
Вот я пишу небольшой проект
github.com/Kukunin/lightum-ng.
Это форк с уже существующего
github.com/poliva/lightum.
Возможно, оригинальный проект не образец самого лучшего кода на Си, но мне моя ООП архитектура куда больше нравится на С++.
Нужно добавить поддержку, например Mate — просто добавь и реализуй класс.
Нужно добавить поддержку Windows — реализуй backend'ы для использования GDI или WinAPI ( я незнаю, что там используется ).
Это преимущества полиморфизма. Как такое сделать на С?
if ( get_backlight_method_1() ) {
} else if ( get_backlight_method_2() ){
} else if ( get_baclight_method_3() ) {
}
так?
Или эмулировать полиморфизм через указатели на функции? Тогда чем это лучше нативной реализации в С++?
Из недостатков моей архитектуры вижу только возможный оверхед на уровне ниже (всякие таблицы виртуальных методов и т.п.).
Ну и да, моя программа течет из всех дыр — но это из-за недостатка опыта. Не думаю, что если бы я использовал С — с памятью было бы лучше.
P.S. Не рассматривайте мой комментарий как агрессию. Я никак не хочу переубедить Вас или что-то еще, просто на основе моего мнения будет проще написать контраргументы. И тогда я узнаю что-то новое.
Спасибо!