|
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 | |
|
Гавнокоддинг или учить ООП? прога или игра ооп
Определить, программа с ооп или нет Изучаю ООП можно или нет так? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|