![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
gMan |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Реальное имя: Вася Пупкин Репутация: ![]() ![]() ![]() |
Допустим нарисовал я кнопку. И еще, еще...
А как сделать эту обьектно-орентированность (блин, слово то какое) не пойму! ![]() Может кто обьяснит? -------------------- Стабильность - признак мастерства
|
![]() ![]() |
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 Прикрепленные файлы |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 1:36 |