powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Теоретические аспекты объектно-ориентированного программирования на С++
25 сообщений из 507, страница 1 из 21
Теоретические аспекты объектно-ориентированного программирования на С++
    #39065857
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Вообще говоря, основная идея понятна, естественна, и принята(собственно я пришёл к ней сам(и считаю что так быть и должно)). Во многом того что касается теоретических аспектов, я согласен с Татьяной Александровной. Она, например, говорит о том, что важно понять, требует ли задача применения ООП, либо не требует, и скакать от этого при решении конкретных задач. Казалось бы очевидный факт, но, тем не менее, рассуждая о "китах" объектно-ориентированного программирования, очевидно присутствие инкапсуляции и полиморфизма в явном виде в модульном и структурном программировании, однако только наследование в явном виде найти в предшествующих парадигмах сложнее. Таким образом, можно сделать такой вывод: программирование с использование классов, не есть программирование в объектно-ориентированном стиле, а есть только программирование с использованием классов. Программирование с использованием классов, и обоснованным использованием наследования есть программирование в объектно-ориентированном стиле. Можно ли рассуждать так, либо я ошибаюсь ?

Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования. Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ?
Подскажите пожалуйста книгу с теоретическими аспектами объектно-ориентированного программирования. Что касается реализации меня полностью устраивает автор упомянутый выше, BS и стандарт.


PS
Что вы используется для построения диаграмм между классами ?
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39065987
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый универсальный пример применения наследования: графические интерфейсы (окошки, контролы и т.д. и т.п.)

В остальном у меня "программирование с использованием классов".
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066009
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury:
>>Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования.
оконный интерфейс. А вообще банду четырёх почитай, если уж об ООП задумался.

>>Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ?
столько, сколько нужно :) вопрос бессмысленный, потому что ответ зависит от размеров проекта, качества проектирования, религии, фазы луны и тысяч других разных причин )))

>>Что вы используется для построения диаграмм между классами ?
бумажка-ручка, доска-фломастер. Последняя пара - самая удобная, по моему скромному
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066178
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСамый универсальный пример применения наследования: графические интерфейсы (окошки, контролы и т.д. и т.п.)

В остальном у меня "программирование с использованием классов".

Спасибо :)
Графические интерфейсы не очень интересны :(
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066181
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, я посмотрю эту книгу
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, вот ты по роду деятельности - математик? Для чего тебе ООП в С++ ?

Я думаю что лет через 10 у тебя будет устойчивая ненависть ко всему С++ ООП и в общении - стиль Луговского
при обсуждении С++.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066310
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury Таким образом, можно сделать такой вывод: программирование с использование классов, не есть программирование в объектно-ориентированном стиле, а есть только программирование с использованием классов. Программирование с использованием классов, и обоснованным использованием наследования есть программирование в объектно-ориентированном стиле. Можно ли рассуждать так, либо я ошибаюсь ?


Ты ошибаешься. Это всё -- ООП.

SashaMercury
Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования.


Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат.
(причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник)

SashaMercury
Как много может быть классов в среднем в ваших программах ? Каков хотя-бы порядок, 10, 50, 100 ?


10-50 -- в изолированной. В большой системе -- сотни.

SashaMercury
Подскажите пожалуйста книгу с теоретическими аспектами объектно-ориентированного программирования. Что касается реализации меня полностью устраивает автор упомянутый выше, BS и стандарт.


Тимоти Бадд писал хорошую книгу .

SashaMercury
Что вы используется для построения диаграмм между классами ?

UML ?
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066326
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ думаю что лет через 10 у тебя будет устойчивая ненависть ко всему С++ ООП
Я в C++ только 5 лет, но мне уже надоели проблемы ООП. Перевожусь по-тихоньку на ФП, изучая Clojure :)
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066347
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZ,
Clojure, безусловно, достойный и интересный язык.
Только и в С++ есть FP, и в Clojure -- ООП, так что не понятно, почему ты их пытаешься противопоставлять.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066349
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZуже надоели проблемы ООП.

А какие конкретно проблемы ООП тебе надоели ?
А то ООП -- он же разный...
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066366
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZЯ в C++ только 5 лет, но мне уже надоели проблемы ООП.отличный вброс )))
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066367
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется или вопрос опять звучит как "вот явление, я хочу его называть так"? То есть наверняка есть какие-то определения, близкие к тому, чтобы считаться общепринятыми, но в отличие от математики знание определений настолько глобальных вещей разработке помогает крайне редко. Ни одна задача (кроме учебных где явно прописано требование ООП) этого самого ООП не требует для решения в обязательном порядке, то же можно сказать и просто о наследовании.
К тому же некоторые формулировки исходного вопроса вроде "а есть только программирование с использованием классов" выглядят так, будто предполагают определенную ущербность подобного подхода по сравению с неким ООП-стилем, причем без доказательства или хотя бы обоснования.
По классам - у меня выходят сотни если Java (практически на любой чих), 2-5 если С++ (ибо бизнес логика ниже js/python/java не опускается).

P.S. Если уж на то пошло, то "квадрат, ромб и прямоугольник" - давняя дисциплина специальной олимпиады в разрезе кто от кого происходит и пример почему не стоит слишком уж заморачиваться с ООП ради ООП.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066370
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSashaMercury
Приведите пожалуйста несколько примеров задач, где потребуется многократное(частое) использование наследования.

Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат.
(причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник)

Добавлю.

Бизнес-сущности. Плательщик. Платёж. Услуга. Традиционно их описание лежало в БД.
Так было исторически. БД - главенствовала. И неважно будь она на файлах или на MSSQL,
существовало мета-описание . И оно было доступно через "SQL> describe tableName".
Но с развитием веба и middle-tier всё больше и больше задач стало "зарождаться" не в БД
а в слое бизнес-процессов. Вот здесь ООП красуется во всей своей красе. Здесь он - первичен.
По нему ORM-ы формируют создающие скрипты. По аннотациям и мета-описателям
детализируются типы данных.

Возможен вариант RAD-средств и различного рода Ent.Архитекторов но на моём опыте
эти описатели не так часто используются. По сути сегодня только исходный код на ЯВУ
с огромным количеством сущностей ООП является ПЕРВИЧНЫМ репозитарием знаний
по бизнес-cущностям. В нём-же декларированы стереотипы. Родственные связи между
классами. Любое обсуждение или дискуссия вокруг бизнес-доработок в конечном
счёте как и дороги в Рим - идут к ООП коду. Он есть альфа и омега. Он - первичен.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066389
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТолько и в С++ есть FP

Достаточно бедное ФП с вырвиглазным синтаксисом.


и в Clojure -- ООП, так что не понятно, почему ты их пытаешься противопоставлять.[/quot]

Ну, не скажи. Там все данные хранятся отдельно от бизнес-логики. А код, их обрабатывающий, представляет из себя множество тоненьких и максимально обобщённых функций, с упором на чистоту (чистые функции). См SO

Можно ещё учитывать, что есть такой монстр Франкенштейна с костылями вместо ног и руками из жопы, как Scala, который позиционирует себя как язык с ФП. Вообще, ФП в каждом языке понимается по-своему.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066393
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZМожно ещё учитывать, что есть такой монстр Франкенштейна с костылями вместо ног и руками из жопы, как Scala, который позиционирует себя как язык с ФП. Вообще, ФП в каждом языке понимается по-своему.
Я очень боюсь устроить офтопик. Но всё тки.

А какой самый труЪ-ФП и почему?
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066404
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА какой самый труЪ-ФП и почему?

Тут каждому своё. Что нравится, то и выбирай. Наверное все наслышаны про Haskell, я думаю, о нём можно сказать труЪ.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066447
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ОК.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066491
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C++ язык практического применения, нет никакого смысла сравнивать с академическим баловством ФП-языков.

Какой то нужный минимум добавили и то ладно.

Nekz, осилишь простенький рейтрейсинг переписать на Кложуре? http://www.sql.ru/forum/1173809-1/tyapnichnyy-benchmark-cpu-part-1
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066509
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимаргл,

Я его только изучаю
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066513
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну крутяк. Мой тяпничный флуд попал в ротацию. Далее - как у Пелевина в Пространстве Фридмана.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066573
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wstМне кажется или вопрос опять звучит как "вот явление, я хочу его называть так"? То есть наверняка есть какие-то определения, близкие к тому, чтобы считаться общепринятыми, но в отличие от математики знание определений настолько глобальных вещей разработке помогает крайне редко. Ни одна задача (кроме учебных где явно прописано требование ООП) этого самого ООП не требует для решения в обязательном порядке, то же можно сказать и просто о наследовании.
К тому же некоторые формулировки исходного вопроса вроде "а есть только программирование с использованием классов" выглядят так, будто предполагают определенную ущербность подобного подхода по сравению с неким ООП-стилем, причем без доказательства или хотя бы обоснования.
По классам - у меня выходят сотни если Java (практически на любой чих), 2-5 если С++ (ибо бизнес логика ниже js/python/java не опускается).

P.S. Если уж на то пошло, то "квадрат, ромб и прямоугольник" - давняя дисциплина специальной олимпиады в разрезе кто от кого происходит и пример почему не стоит слишком уж заморачиваться с ООП ради ООП.

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

PS
А Java тут не авторитет/пример. Сколько классов потребуется(и будет задействовано) чтобы написать программу с выводом любого сообщения на какой-нибудь поток? Сколько классов потребуется чтобы написать программу факторизации? Думаю 0 и 1 не будут ответами ни на один из этих вопросов.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066574
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv Традиционный пример -- любая графика. Рисунки граф. примитивов. Граф.объект, четырёхугольник, трапеция, ромб, прямоугольник, квадрат.
(причём уже тут --множественное наследование, квадрат -- и ромб, и прямоугольник)


ну вот.. Я думал что должно быть что-то ещё..

maytonБизнес-сущности. Плательщик. Платёж. Услуга. Традиционно их описание лежало в БД.

А где в данном примере будет наследование ?
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066575
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZЗимаргл,

Я его только изучаю
Тогда твое мнение == 0.

SashaMercury,
на практике, ты используешь какой либо фреймворк. И соответственно ему у тебя и строится программа. Если он ООП (обычно) - ты используешь ООП, если нет - как тебе удобно.
Абстрактная теория годится только для хелловорлдов.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066576
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причём наследование, как мне кажется, как правило удобно при дальнейшей доработке. Нужно что-то новое, но давайте не будет трогать старое. Давайте. Наследование.
...
Рейтинг: 0 / 0
Теоретические аспекты объектно-ориентированного программирования на С++
    #39066577
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимаргл Абстрактная теория годится только для хелловорлдов.

а потом у нас спутники падают, или что-то там упало год назад. Без понимания теории невозможно программировать качественно, и это не я говорю(хотя и сам так считаю), это говорит BS, и Павловская, например. Да и не только они
...
Рейтинг: 0 / 0
25 сообщений из 507, страница 1 из 21
Форумы / C++ [игнор отключен] [закрыт для гостей] / Теоретические аспекты объектно-ориентированного программирования на С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]