Другие языки программирования и технологии

Возможно ли любую программу написать на языке C++ при помощи только структурного программирования, без ООП?

Или существуют такие программы, когда без ОПП не обойтись?
Нет.
Некоторые программные продукты должны в принципе иметь стройную архитектуру. Прежде всего это библиотеки, с которым придется работать другим разработчикам. Без ООП вы не сделаете их достаточно удобными, и это будет уже не то.
Также это направления, связанные с хакингом, реверс-инжинирингом и т. д., когда приходится работать со сторонним кодом (например, сторонним сервером), который быстро меняется и ваше приложение нуждается в постоянном и очень быстром совершенствовании, и по возможности сохраняет стабильность при очередных переменах, не слетая с уничтожением информации.

В остальных случаях, если проект достаточно крупный и все же планируется его совершенствование и повторное использование кода, то это в разы тяжелее, дольше и дороже.

Если мелкий одноразовый - то может быть и проще.
НО если вы вообще не хотите ООП, то вам придется не только самому не писать ООПшный код, но и отказаться и от готовых фреймворков и библиотек с ООП, и на винде работать с чистым WinAPI. А в таком случае и мелкий одноразовый проект будет сделать тяжело, а кое-что и вообще едва ли под силу.

Так что здесь не обойтись без сакраментального вопроса: КАК И НАХ*Я?
ЛП
Леонид Прокопенко
26 662
Лучший ответ
Максим Ерисковский Да не, мне просто стало любопытно. Спасибо за подробный ответ)
Раиль Халиуллин Если уж две знаменитые оси написали без ООП то прикладнуху типа невозможно написать без ООП, ваша логика такая ?
1. Структурное программирование - это методология организации кода программы, одинаково применимая как к процедурному, так и к объектно ориентированному программированию. Противопоставлять ООП и структурное программирование - это откровенное невежество.

2. Безусловно, можно. ООП - это всего лишь удобная надстройка над процедурным программированием, упрощающая (не всегда) работу программиста. Никаких новых возможностей, которые невозможно реализовать в рамках процедурного программирования, ООП не даёт.

3. Очевидно Вы не знакомы как с теорией алгоритмов в целом, так и с математической формулировкой понятия "алгоритм" в частности - иначе не задавали бы такой вопрос. Любые тьюриг-полные языки являются эквивалентными. А т. к. и С (вообще не имеющий ООП), и С++ являются тьюринг-полными, то любую программу на языке С++ можно записать на языке С. Но С является подмножеством С++, потому любую С++ ООП-программу можно записать на С++ без ООП.
Ariana France Voyage
Ariana France Voyage
90 311
Вопрос в сложности программы. ООП сильно упрощает программирование больших проектов. В принципе можно, например, чистый С обходится без ООП.
Теоретически можно. Но практически это потребует колоссальных затрат труда без всякого смысла. С таким же успехом можно добираться из Москвы в Питер через Владивосток.
С.
Сергей ...
57 865
Возможности всех языков программирования одинаковые с точки зрения алгоритмов. Вопрос в том как это делается. ООП служит более понятной структуре кода и более систематичному подходу к разработке.
Роман Фёдоров
Роман Фёдоров
71 163
берете асм+выньайпи и посмотрим, на сколько вас хватит
ООП нужен как утром по весне прошлогодний снег :)
Язык Си чисто процедурный - ООП можно сэмитировать, через замыкание - полиморфность. Шаблонность достигается дефайнами. Что там дальше? Инкапсуляция - указатели на функции + данные - элементарно, можно применить вариадик макросы к функциям с неизвестным числом аргументов - что передрали крестовики в свой стандарт. Директивы приват и публик нахрен не нужны - ибо бесполезны. Доступ к приватным данным я получу и в крестах, тупо по смещению.
http://pastebin.com/a3356SMa
YH
Yaqubjon Hotambekov
8 452
Можно и на ассемблере, если есть куча свободного времени.
Рафик Алиев
Рафик Алиев
4 198
Теоретически можно. На практике - попробуйте, потом расскажете о впечатлениях )