|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 2, 2004 04:07:15 S_T_A_S_ А вы никогда не задумывались откуда и зачем вообще возникло ООП? Задумывался. Хочешь это обсудить? CPU и RAM - не угадали - это тоже ресурсы. Тогда причем в постановке задачи экранная память? AsmGuru62 Замечательно сказано! Это моя интерпретация Ф.Брукс "Мифический человеко-месяц. Или как создаются программные системы": ... У большинства европейских соборов части, построенные разными поколениями строителей, имеют различия в планировке и архитектурном стиле. Более поздние строители испытывали соблазн «улучшить» проект своих предшественников, чтобы отразить новые веяния моды и свои личные вкусы. В итоге мирный норманнский трансепт создает конфликт с примыкающим к нему возносящимся в высь готическим нефом, и результат столь же служит восхвалению славы Господней, сколь и гордыни строителей ... |
|
|
Дата: Апр 2, 2004 13:18:50 q_q Хочешь это обсудить? Я уже предложил простую задачку по этой теме. Для ее решения, помимо таких очевидных вещей, как сам компьютер, стул, стол, 220V, чай, кофэ, булочки, котлеты, мозги, руки, ноги и т.д. и т.п. необходимы и достаточны всего 2 вещи. Одна из них - это инструмент (программа: транслятор, компилятор, интерпретатор) - выбирайте на свой вкус вторая - концепция, способ мышления, парадигма или еще хз как это назвать - выбирайте что хотите. Все. И на каждой странице есть ответ. Есть и другие варианты решения. Они или избыточны или через Жизненно Ориентированное Программирование У Да вот еще нарыл на форуме. Вы хорошо разбираетесь в Си, так может объясните моему крестьянскому мозгу, зачем там __asm [ rst : пример комбинации С и асма - есть у тебя указатель на функцию (не статическую) - член класса. в виде void*. Нужно вызывать эту функцию для экземпляра класса. Вопрос как? А никак. (на базе шаблонов есть громзодкие конструкции, позволяющие это сделать), но блин получать 1К кода не всегда хочется. Итак вопрос - как же побороть злобный С++? ответ - просто! допустим функция имеет прототип: void f(); вызвать её для эксземпляра класса, при условии, что адрес функции находится в lpf: __asm{ push this calll lpf } ] |
|
|
Дата: Апр 5, 2004 04:36:07 · Поправил: q_q S_T_A_S_ может объясните Задай этот вопрос rst. |
|
|
Дата: Апр 5, 2004 14:54:43 Люди , а зачем в самом начале файле windows.inc определено , аж 5 страниц типов , которые все сводяться к одному - DWORD ? Для того , чтобы легче было разбираться или наоборот ? |
|
|
Дата: Апр 5, 2004 16:28:13 bogrus Для того , чтобы легче было разбираться или наоборот ? Ну да, имхо так понятнее, а вообще ... чтото я слышал про проверку типов. |
|
|
Дата: Апр 5, 2004 17:35:17 Есть два прототипа: #1. GetDlgItem (DWORD, DWORD) #2. GetDlgItem (HWND, UINT) Какой лучше? Для меня - #2 - однозначно лучше. |
|
|
Дата: Апр 6, 2004 13:43:44 зачем в самом начале файле windows.inc определено , аж 5 страниц типов , которые все сводяться к одному - DWORD ? IMHO, это печать Баала. Наследие того, что виндос и MASM написаны на С. В FASM так не обязательно делать :P IMHO ООП - это не матершинные слова вроде инхеритация. Это несколько другой взгляд на построение программы. [ Зубков - Команда INT 21h вызывает системную функцию DOS. ] Моя версия (надеюсь, The Svin меня поправит): Команда INT 21h вызывает програмное прерывание. При обработке этого прерывания вызывается обработчик - системная функция DOS. Некоторые вещи делаются намного проще если уйти за рамки бесконечных IF / ELSE IF / ELSE / END IF Inverse programming, если не ошибаюсь. |
|
|
Дата: Апр 6, 2004 20:14:19 S_T_A_S_ В FASM так не обязательно делать :P В MASM это делать тоже никто не заставляет. Просто некоторые любят использовать сишные типы для улучшения "читабельности" кода. JaDS чтото я слышал про проверку типов Это из другой оперы. |
|
|
Дата: Апр 6, 2004 20:37:18 Quantum Да я знаю.. Просто MASM накладывает значительно больше стереотипов. Я еще не от всех избавился :( |
|
|
Дата: Май 9, 2004 12:55:30 Лично я противник ООП в асме. ООП в сишном понимании там нафик не нужен. Меня асм привлекает тем, что написав программу и засунув ее в отладчик я увижу не что-то напоминающее по логике действий мою прогу, а непосредственно код, как если бы его выдрали из сорца. С появлением ООП эта особенность исчезнет и тогда мне останется либо игнорировать ООП, либо уйти на си. Мое мнение, что ООП - это высокоуровневое явление, а низкий уровень потому и низкий, что дает полный контроль кода программы. Можно, конечно разработать дебагер, который будет поддерживать ООП, но это опять будет совершенно не то, что я бы хотел увидеть. Так что кесарю - кесарево. А возражения, что на ООП проще писать программы - это ИМХО. Можете говорить, что я просто не умею писать на ООП, это ваше право. Но я могу любую задачу, типичную для ООП реализовать на асме практически за то же время, что и на ООП. А мифическая польза наследования с высокой вероятностью порождает такую прорву багов, что выигрыш в скорости написания проги полностью поглощается временем отладки. Использование ООП - это такое же дело вкуса как и выбор языка программирования и среды разработки. |
|
|
Дата: Май 9, 2004 18:05:29 [ n0p : Но я могу любую задачу, типичную для ООП реализовать на асме практически за то же время, что и на ООП ] Как на счет классического примера: Написание GUI Обойдемся без "всяких Vtable" и получим интерфейс командной строки? ЗЫ А вообще я уже понял - ООП - почти что суксь. И похоже КОП тоже. А вот есть еще клиент-серверная модель =) |
|
|
Дата: Май 9, 2004 18:51:44 S_T_A_S_ Насчет ГУИ. Я бы взялся, если бы была потребность и если бы я был в материале. Ничего сверх сложного в этом нет, просто инфу надо. ООП отнюдь не суксь. Я же сказал, что это дело вкуса. Кому-то нравится ООП, а мне нет. А цели одни. И методы схожи. Просто лично мне проще без ООП писать, хотя я знаю человека, который как раз наоборот готов все шаблонизировать и классифицировать. |
|
|
Дата: Май 9, 2004 20:38:53 n0p Браться не надо :) Можно просто подумать как это реализовать. Окошечки разные, куда юзер мышкой ткнул и т.п. Мы-то привыкли, что сообщения виндос шлет. И окошки виндос сам рисует. А если без виндоса? ООП почему-то часто путают со Страуструпом. А был когда-то и Xerox PARC и что-то еще. |
|
|
Дата: Май 9, 2004 23:08:59 Когда я взялся за AsmDev32 - у меня уже была идея библиотеки классов. Голый ООП, конечно, никак не ускорит разработку, но сама возможность хороша, потому что при правильном подходе к ООП - повышается вероятность использования кода, написанного для одного проекта, в другом проекте. Так что не только ООП нужен, а нужна библиотека, в которой можно найти нужный базовый класс, наследовать от него и использовать имеющийся код. Пример: сколько времени надо убить, чтобы набросать скелет MDI Application? Неплохо было бы иметь класс, который позволил бы через виртуальные методы собрать MDI любой конфигурации. Я не спорю, что это можно сделать и без ООП - просто имея базовый код - каждый раз копируя его и добавляя или убирая код добиваться нужной конфигурации. Но, гораздо легче (и приятнее) это делать как это сделано в С++. |
|
|
Дата: Май 10, 2004 07:19:53 каждый раз копируя базовый код - у этого метода есть один скрытый недостаток - может вкрасться злостная очепятка. Причем так, что сразу-то и не заметишь :( [offtop, да простят меня Хранители Сайта] n0p Как человеку, судя по всему знакомому с делфи, советую найти немного времени и посмотреть на BlackBox. Это даст ответы на некоторые вопросы, например, откуда взялись COM, .NET, Java и пр. Весит эта штука относительно мало. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.093 |