А как сделать эту обьектно-орентированность (блин, слово то какое) не пойму!
Может кто обьяснит?
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
| gMan |
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Реальное имя: Вася Пупкин Репутация: 1 |
Допустим нарисовал я кнопку. И еще, еще...
А как сделать эту обьектно-орентированность (блин, слово то какое) не пойму! Может кто обьяснит? -------------------- Стабильность - признак мастерства
|
![]() ![]() |
| BlackShadow |
Сообщение
#2
|
|
Гость |
Ндя. Особо порадовать нечем. Оказывается поприбивал я всё, что делал под ООП, а книгу спихнул кому-то
SEGMENT VMT_Seg PUBLIC Чего тут есть: 1). Описывается VMT_Seg. В этом сегменте и будут храниться все VMT. 2). Макрос LoadVMTSeg загружает в сегментный регистр адрес VMTSeg. 3). Тип MPTR описывает тип элементов VMT. Для маленьких моделей памяти можно заменить и на WORD, т. к. достаточно хранить лишь смещение метода. 4). Макрос MakeVMT является основным во всём этом бреде. Он и инициализирует таблицу VMT для объекта. Естественно должен вызываться в конструкторе. Теперь о воспоминаниях. Описывается класс как struc, но необычный. В нём может присутствовать такая вот форма:
Таким вот макаром объявляются методы. Ещё есть такой момент: конструктор лучше оформить как обычный метод, который вызывает MakeVMT, а затем уже какой-нибудь виртуальный метод инициализации. Вызывать методы лучше через CALL METHOD Obj.MyMethod. А вот тут точно не помню: это форма сама заносит this/self/me в ES:BX или это самому надо делать, чтобы VMT он нашёл... Ну, это можно и в дебугере уточнить. А вот как описывается наследование, вот этого я действительно не помню З. Ы. : забыл-то про самое главное. Виртуальные методы объявляются вроде так: VIRTUAL MyFun MPTR MyObj_MyFun Прикрепленные файлы |
gMan Обьектно-орентированность 22.07.2004 20:39
BlackShadow :)
Например создаёшь объект типа
Type
TButton
… 22.07.2004 20:53
gMan Хм... На паскале то понятно.
А с ассемблером как б… 23.07.2004 2:01
BlackShadow Ну ты загнул. Было у меня дело - писал на асме с О… 23.07.2004 15:48
gMan Отлично! жду!
Заранее спасибо. 23.07.2004 16:56
gMan Уже ведь вторник, а обещанного нет. :p2: 27.07.2004 2:02
BlackShadow Я уже извинился в другом топике - запамятовал (вых… 27.07.2004 17:03
gMan Ждемс... :) 27.07.2004 17:15
gMan Спасибо, ты мне очень помог. :rolleyes: 28.07.2004 21:36
BlackShadow Не на чем. Если напишешь чего рабочего, выложи, PL… 29.07.2004 17:05
gMan Нет проблем, как напишу - так покажу :)
P.S. Есл… 29.07.2004 18:06
gMan BlackShadow, что если я напишу модуль компонентов … 31.07.2004 15:41
BlackShadow Давай-ка лучше заново и по-подробнее. Я что-то не … 1.08.2004 17:02
gMan Спасибо, далее сам догоню :)
Уже что то назревае… 1.08.2004 21:17
BlackShadow А зачем тебе понадобился паскаль? Лень графику дел… 1.08.2004 21:20
gMan Нет просто удобнее работать :)
Так все таки лучш… 1.08.2004 21:36
BlackShadow Да хоть на басике пиши :)
Чем паскаль удобнее асма… 1.08.2004 23:01
gMan Бррр...
Короче на чистом асме писать буду и точка… 2.08.2004 21:32
BlackShadow 1). А что ты подразумеваешь под компонентом?
2). К… 3.08.2004 16:49
gMan Ладно, разберусь как нибудь. Тема закрыта :) 4.08.2004 1:24![]() ![]() |
|
Текстовая версия | 22.06.2026 6:19 |