|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||||||||||||||||||||||||||||||||||||
| 13.01.2015, 20:39 | ||||||||||||||||||||||||||||||||||||||||
2) Единственное косвенное отношение RAII к ООП — виртуальность деструктора. Всё. Больше никакого отношения к ООП. Это фича C++ и только C++, а не ООП. Или эти словосочетания тебе тоже непонятны? Добавлено через 2 минуты Добавлено через 2 минуты
0
|
||||||||||||||||||||||||||||||||||||||||
| 13.01.2015, 20:39 | |
|
Ответы с готовыми решениями:
926
ООП или функции
литература и/или статьи по ООП |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||
| 13.01.2015, 23:08 | |||||||||||
|
Потому что я итак знаю, как это можно реализовать в процедурном языке. Я не увидел в этом примере "динамики". Ваш пример не отражает принципа действия "динамического ad-hoc полиморфизма", поскольку ни с точки зрения дизайна, ни с точки зрения реализации ничем не отличается от обычного статического аналога. На языке, которому неведомы объекты, полиморфизм, и тп. Теперь вы спрашиваете, при чем тут ООП? На процедурном языке реализовать статическую перегрузку не сложно. Зачем там вообще может понадобится "динамическая перегрузка", и как она вообще может работать в условиях отсутствия поддержки оопнутого полиморфизма - для меня загадка. Поэтому я попросил у вас предоставить пример использования. Честно говоря, я уже не рассчитываю получить от вас вразумительного ответа. Возможно там действительно рантайм. Но по дизайну это ничем не отличается от возможного статического аналога. А следовательно не дает никаких профитов, которые может дать полиморфизм. Это производит на меня впечатление "поверхностных знаний". Любой новичок в с++ знает, что для автоматических переменных конструкторы/диструкторы отрабатывают автоматически. Очевидно, что для того, что бы попользоваться логом, нужно сначала создать его объект. При этом конструктор запустится автоматом и запросит фрейм. Очевидно, что когда функция завершится, лог подохнет, и автоматом запустится диструктор, который закроет фрейм. Это так просто, что даже скучно. Ваши познания языков меня разочаровывают. Вам не нужно знать внутреннего устройства, что бы пользоваться. В клиентском коде ничего лишнего, никаких open/close. Никаких "кишков реализации". Это - главное, что вы должны уяснить. Вам в руки дают инструмент. Для того, что бы пользоваться, знать устройство не обязательно. В отличие от примера с вашим макросом, подробности реализации инструмента не будут засорять ваш клиентский код. И вам не придется городить всякой ботвы в клиентском коде, только для того, что бы эта хрень заработала. Если вы захотите узнать детали реализации - вы сможете рассмотреть её отдельно от вашего бизнес-проекта. Полностью сосредоточив свой взор на самом логгере, без оглядки на среду использования. Разделяй и Властвуй(ц) Гай Юлий Цезарь. Самый первый в истории человечества человек, применивший оо-парадигму на практике. Копипаста через одно место. Что бы эта галимая "автоматика" заработала, нужно знать нюансы этого долбанного макроса, что само по себе есть нарушение инкапсуляции. Одна ошибка, и все, приехали - потом сами отлаживайте в таком макросе ошибки. Проще написать эти самые функции вручную, чем следовать модели такой "автоматики". "Автомат", который ничего не облегчает, а только усложняет - это где-то на грани потери здравого смысла. Восприятие зависит от точки зрения, а точка зрения зависит от задачи. Когда я пишу аллокатор памяти, я смотрю на вещи сквозь призму "низкого уровня". Когда создаю колобков для бизнес-приложения, то смотрю на них сквозь призму "высокого уровня", и меня уже не парит, какой там аллокатор отвечает за размещение в памяти, и как это вообще все происходит. Вам стоит понять одну вещь: парадигма это система взглядов. Это способ абстрагирования. И не более того. И на случай, вдруг вы не в курсе: как сишник, открою вам страшную тайну - любые объекты, на любых языках всего лишь куски памяти. С такими друзьями - враги не нужны. Больше я ничего от вас не увидел. Остальные ваши сообщения не комментирую. Лень. Вы меня разочаровали.
0
|
|||||||||||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||||
| 13.01.2015, 23:26 | ||||
|
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 13.01.2015, 23:41 | |||
|
Если вам известно о чем тут речь - вы можете рассказать об этом своими простыми словами. Если я что-то не знаю - не боюсь спросить. Про утенка - не мой случай. Я открыт для нового, но материал изучаю целенаправленно, и основательно, не хватаясь за все подряд. Предпочитаю знать мало, но основательно, чем много, но везде по чуть-чуть. И у меня нет так уж много времени, что бы тратить его непойми на что, непойми зачем.
0
|
|||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||||
| 14.01.2015, 00:25 | ||||
|
Добавлено через 5 минут
0
|
||||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||
| 14.01.2015, 00:27 | ||
|
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||||
| 14.01.2015, 00:42 | |||||
|
Добавлено через 4 минуты Добавлено через 5 минут ![]() Блин, чё-то я опоздал. korvin_, всё уже сказал и я остался голодным
0
|
|||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||||||||
| 14.01.2015, 00:47 | ||||||||||||
|
И я спрашивал не при чем тут ООП, а какое отношение статика имеет к ООП? Добавлено через 1 минуту
0
|
||||||||||||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||||||||
| 14.01.2015, 01:30 | ||||||||
|
Добавлено через 16 минут Хоп, короче, без ООП:
0
|
||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 14.01.2015, 08:28 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||
| 14.01.2015, 09:10 | |||||||||||||||||
|
Любые конструкции на языке. (это - не личное мнение) Может быть менее значительно в сравнении с декларативной парадигмой. (это - личное мнение) Они не предназначены для того, что бы менять синтаксис самого языка. Не помню, что бы мы с вами пили вино и рассказывали друг другу о жизни. Вы не можете знать, какова моя специальность. Во-вторых, что именно "это"? "формальная мат.модель ООП"? "λ-исчисление"? "π-исчисление"? "конкурентное программирование"? Для начала было бы не плохо провозгласить, что значат все эти пункты. Просто и в двух словах. В третьих, я - практик. Я не очень много знаю. Но все что я знаю: языки, технологии - все это все это я применял, и применяю на практике. Я зарабатываю этим на жизнь. И осваиваю что-то новое заранее зная для чего я это делаю. Какой будет профит. На что будет потрачено время. Возможно, что-то из этих пунктов и попадалось мне на пути. Но при этом сами формулировки были другими. (есть подозрение, что "λ-исчисление" есть ни что иное, как "лямбда выражения", например) А возможно, пункты не знакомы, просто потому что без надобности. Реализация... в общем посмотрел, поплевался, закрыл тему. Не осилил в общем. Объектный-си. Нужно было портировать фреймворк с плюсов на объектный-си. Работали в паре со специалистом по этому языку. Как средство выражения язык мне очень не понравился. Не хотелось бы ещё раз с ним соприкоснуться. Жава/сишарп/Д/с++ Эти языки я знаю поверхностно. На уровне беглого чтения. Не заметил никаких принципиальных различий между плюсовой оо-моделью. Питон. Его я использую в повседневной практике. "Очаровательный язык", с первого дня вызвавший симпатию. Приятно поразила продуманность синтаксиса. Никаких принципиальных различий с оо-моделью плюсов так же не обнаружил. ---------------------------- В целом, моих познаний ооп мне хватает. У меня нет потребности изучать ооп ради ооп. Мне не очевидно, по каким критериям вы определяете: "лучший"/"худший". Более того,таких критериев не существует. Инструмент выбирают под конкретные условия, и задачу. В этом смысле ваша оценка несколько наивная, ну да ладно. Динамический полиморфизм невозможно реализовать в виде одного лишь синтаксического сахара. Это - целая технология, которую с рядом серьёзных ограничений сишники велосипедят вручную. А отсюда прямиком следует, что невозможно в виде сахара реализовать работу с исключениями, например. Если есть объект, который при создании умеет захватить ресурсы, значит есть RAII. Объекты, которые при создании ничего не умеют... такое ооп я себе представить не в состоянии. Я утверждал, что пример не отражает работу полиморфизма, поскольку ничем не отличается от обычной статической перегрузки. Кстати, вот такие повороты сюжета заставляют меня усомниться в умственных способностях собеседника. Может быть для вас не очевидно, но тот факт, что под капотом какого нибудь процедурного интерпретатора динамика, вовсе не означает, что на самом языке есть динамика. На протяжении всего диалога вы не смогли привести ни одного примера-иллюстрации процедурного полиморфизма на языке. Перпендикулярное, поскольку ооп включает процедурную парадигму. Хотя любопытно. Я ожидал от вас хотя бы одно примера техники. Поскольку сделать это вы оказались не в состоянии, то не вижу смысла обсуждать это с вами дальше. Я могу построить интерпритатор для процедурного языка, в котором будет доступна перегрузка функций. От того факта, что все работает в рантайме, в самом языке динамика не появится. Динамика, которая реализуется через статику не интересна. И к динамике на самом языке отношения не имеет. И вынуждает клиентов следовать неким синтаксическим правилам. Любой более менее опытный сишник сразу же откажется от использования такой мерзости. Выше я писал: "автомат", который ничего не облегчает, а только усложняет - это на грани потери здравого смысла. И даже описал почему. Более я не хочу к этому возвращаться. Интересно зачем они это делают? Наверное, наверное, это о чем то нам намекает. Говорю вам это, как человек, который сколько-нибудь знает, что примерно находится у трансляторов этих самых языков под капотом.
0
|
|||||||||||||||||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 14.01.2015, 09:41 | |||
|
Добавлено через 8 минут
0
|
|||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 14.01.2015, 09:47 | ||
|
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||||||
| 14.01.2015, 10:04 | ||||||
|
Добавлено через 5 минут То есть принципиальной разницы между синтаксисом object.method(a, b, ...) и method(object, a, b, ...) нет; кроме того, второй вариант более общий и гибкий. Добавлено через 1 минуту Добавлено через 7 минут Ведь захватить ресурсы это одно, надо ведь ещё и освободить их планируемым образом (лексически описанным, как правило). А в большинстве ООП языках нет такой семантики вызова деструкторов, как в C++, но тем не менее RAII реализовано и, в связи с этим, совершенно очевидно должно быть, что сам по себе RAII к ООП отношения не имеет. Добавлено через 2 минуты
0
|
||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||||||||||
| 14.01.2015, 10:08 | ||||||||||||||
Последняя попытка.![]() Лол, а как тогда называется вот это: ((char*)&foo)[6] = 'a'; ? Уж не приведением ли типа foo* к типу char*?
0
|
||||||||||||||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 14.01.2015, 10:09 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 14.01.2015, 10:52 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 14.01.2015, 11:22 | |||||||
|
Вот только я таким не страдаю. Поэтому, мне как то сложно воспринимать лесенку из вложенных друг в друга функций - декларативщиной. декларативщина:
или шаблоны с++
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 14.01.2015, 11:26 | |||
|
Добавлено через 43 секунды
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 14.01.2015, 11:26 | |
|
0
|
|
| 14.01.2015, 11:26 | |
|
Гавнокоддинг или учить ООП? прога или игра ооп
Определить, программа с ооп или нет Изучаю ООП можно или нет так? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|