LINUX.ORG.RU

Есть желание перейти на C++...


0

0

Доброе время суток!

Есть желание перейти с C на C++. Сейчас взвешиваю все плюсы и минусы, а пока возник небольшой вопросец...
Наибольшую выгоду от перехода на C++ можно извлечь, если начать активно использовать ООП. Если говорить тривиально, это означает, что все сущности, с которыми оперирует программа должны представляться в виде объектов. Вроде это очевидно. Однако программа выполняется под управлением ОС и ОС предоставляет API, ориентированный на использование C, т.е. по большому счету это API нужно предварительно обернуть классами C++. Так и делают: Qt, VCL, MFC имеют в своем составе потоки, средства синхронизации, сокеты и т.д. оформленные в виде классов.

Однако, область применения разрабатываемых программ не позволяет использовать ни одну из перечисленных библиотек: мы пишем консольные программы преимущественно под UNIX. Значит нужно что-то еще... Кто-то может что-нибудь посоветовать?..

anonymous

>Наибольшую выгоду от перехода на C++ можно извлечь, если начать активно использовать ООП

C++ намного больше чем C с классами, более того IMHO чрезмерное
увлечение разработкой велосипедов на базе ОО пустая трата времени.
Меня поражает стремление каждой программы написать свой вариант
строк, массивов, алгоритмов сортировок ну и естественно сборщиков мусора. Большинство из этого уже есть в стандарте.
Если не хватает. то есть boost.

Мне кажется наиболее оптимальным где надо напрямую использовать C API,
при этом:
Для зашиты ресурсов удобно использовать smart_ptr из boost'a
Для отлавливания ошибок -- try catch.
Активно использовать STL контейнеры и алгоритмы, ну и
конечно template
Классы безусловно нужны, но не стоит ими злоупотреблять.

anonymous
()

с точки зрения C, C++ стоит истользовать хотя бы ради исключений. при грамотном подходе, километровые портянки if {} else {} с ручной подчисткой ресурсов по откату транзакции уходят в даль..

// wbr

klalafuda ★☆☆
()

Вас обманули. ООП это не выгода. Вот если вы будете активно использовать шаблоны и STL то будет выгода.

anonymous
()

ООП можно зпниматься и на С, с наследованием и полиморфизмом. Если интересно,посмотри, как это делают в GNOME

А оборачивать в С++ ничего не надо. Когда так делают, преследуют другие цели. В Qt, например, цель - переносимость программ на уровне исходников..

anonymous
()
Ответ на: комментарий от anonymous

>ООП можно зпниматься и на С, с наследованием и полиморфизмом. Если интересно,>посмотри, как это делают в GNOME

да мне приходилось работать с этим Г...,

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

anonymous
()
Ответ на: комментарий от erDiZz

все таки хуже. А все почему -- средств метапрограммирования в Си нормальных нет:)

Al_Hebraic_Guru
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.