Вопрос: Работа с классама в ВБ6 (ООП) | Добавлено: 25.08.09 11:14 |
Автор вопроса: ![]() |
Доброго времени суток.
Подскажите пожалуйста литературу по сабжевому вопросу (если можно со ссылками). Также очень интересуют примеры программ с использованием классов. |
Ответы | Всего ответов: 46 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #1 | Добавлено: 25.08.09 11:21 |
ООП в Вб6? однако... скажи, что ты пошутил!!! То, жалкое подобие, которое реализовано в Вб6 даже имитацией ООП назвать сложно... |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 1 |
Профиль | Цитата | #2 | Добавлено: 25.08.09 11:42 |
Ну как бы то ни было, меня интересует именно этот вопрос) Если угодно - подскажите литературу и примеры по реализации подобия ООП в ВБ6) |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #3 | Добавлено: 25.08.09 12:22 |
Да тут и изучать особо нечего.. все самое основное есть тут
http://www.codenet.ru/progr/vbasic/class.php Если тебе все же захочется поизвращаться с имплементацией, то рекомендую ознакомиться с этой докой http://www.kb.mista.ru/article.php?id=618 Visual Basic 6.0 does not support implementation inheritance. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 8 Ответов: 39 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 27.08.09 13:36 |
Да, не спорю изучать там нечего! Property Let, Property Get и писец! |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #5 | Добавлено: 28.08.09 11:06 |
Не надо бузить, а то ТС может решить что не стоит применять ООП в VB. И это будет напрасно. Жалкое подобие ООП всё же НАМНОГО удобнее, чем его отсутствие (на мой взляд) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #6 | Добавлено: 28.08.09 11:20 |
Не надо бузить
ты хочешь поговорить об этом? Из всей мощи ООП в ВБ6 реализована лишь инкапсуляция, которую ты без труда можешь реализовать в обычном модуле.. Какой смысл в таком ООП? Если нету наследования то называть это ООП даже язык не поворачивается.. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 28.08.09 11:28 |
Не, ну там еще сами классы есть) И еще можно их экземпляры создавать)) |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #8 | Добавлено: 28.08.09 11:55 |
EROS, по крайней мере два критерия из трех - инкапсуляция и полиморфизм - в VB6 реализованы, и это главное.
Польза от наследования далеко не так очевидна. К примеру, в том же .NET вообще решили отказаться от множественного наследования - и не помнится мне что-то возмущений разношерстных ламеров по поводу ущербности ООП. Главное - были бы прямые руки и здоровая голова ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #9 | Добавлено: 28.08.09 12:43 |
Я после того как первый раз поробовал возможность ООП в VBA, сразу оценил удобство работы. Экземпляр модуля ведь не получится создать, а экземпляр класса - пожалста вам. И свойства тоже. Тут конечно можно сделать глобальные переменные типа публик, но если надо проверить значение вводимое с помощью св-ва? Ну и, правда это специфичное для VBA у меня, - сделал класс для управления чужим приложением, написанным на C++ и не поддерживающим COM, управление там с помощью Win32 API организовал, естественно получилось много функций в классе и кроме того для каждого(почти) "контрола" сделал свой класс вся эта беда размещалась в вордовском файле. Ну вот. Понадобилось из макроса екселя или т.п. использовать этот класс. Получилось достаточно просто. Через References подключил вордовский файл и после As в списке стал появляться этот класс. А с помощью модулей я бы офигел. Там по моему запустить процедуру можно ТОЛЬКО через метод Word.Application.Run(). Причём если его запускать без Call, выдаёт ошибку, если процедура просит параметры. Вот так. А так получается типа GNApp.TrcListBox.Item(1,1).Text, и всё. Так что польза от ООП в VB всё же есть и по моему немалая. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 28.08.09 13:19 |
VB - это большой жирный надстройка и над ООП, и над COM. Без наследования - это, конечно, обидно. Но то, что можно уже хотя бы сгруппировать операции и поля в разные классы - уже хорошо. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 28.08.09 13:20 |
И вообще, такое ощущение, что тут где-то рядом кто-то думает, что "ООП", "То, что сказала Microsoft" и "хорошо" - синонимы. :D |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #12 | Добавлено: 28.08.09 15:26 |
Скорее тут где-то рядом кто-то прокачиват понты не по делу. И совершенно безосновательно... |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #13 | Добавлено: 28.08.09 19:27 |
Польза от наследования далеко не так очевидна. К примеру, в том же .NET вообще решили отказаться от множественного наследования
Польза от множественного наследования - вопрос спорный.. а вот необходимость обычного наследования и абстракции, имхо, как раз таки очевидны.. EROS, по крайней мере два критерия из трех - инкапсуляция и полиморфизм - в VB6 реализованы
Ну если инкапсуляция еще худо бедно сделана, то полиморфизм в редакции VB6 - это издевательство.. только через интефейсы(если не ошибаюсь) |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #14 | Добавлено: 29.08.09 06:13 |
GDK пишет:
Не надо бузить, а то ТС может решить что не стоит применять ООП в VB. И это будет напрасно. Жалкое подобие ООП всё же НАМНОГО удобнее, чем его отсутствие (на мой взляд) ТС не должен решить что не стоит применять ООП в VB6. Он должен решить что не стоит применять VB6. |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 29.08.09 10:24 |
Так вот какова цель всей твоей жизни, Бренд! |
|