![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| kostofffan |
|
|||
|
Unregistered |
Объясните пожалуйста множественное наследование и как им пользоваться.
Объясните смысл строк:
(Это создание нового объекта). И зачем нужны массивы @EXPORTER_OK и @EXPORTER и различие между ними? Заранее спасибо. |
|||
|
||||
| korob2001 |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Слишком пространственно, найди учебник по ООП. Но принцип такой: Один класс может наследовать методы другого класса. Допустим в следующем примере класс Horse становится подклассом Critter ( @ISA объявляем через our, а не через my, так как он должен быть переменной пакета, а не лексической переменной.
Допустим что в $steed находится объект Horse, и ты вызываешь с ним метод move:
Поскольку $steed яляется объектом Horse, Perl сначала ищет для этого метода подпрограмму Horse::move. Если такой не найден, то Perl обращается к массиву @Horse::ISA, который отправляет его в пакет Critter в поисках Critter::move. Если и эта подпрограмма не найдена, то и в нём начинается поиск имени пакета предка, который могбы предоставить метод move(), и так будет продолжаться движение по иерархии наследования до достижения пакета в котором нет @ISA. PS: ( Пример и книги "Программирование на Perl" ).
Это часть конструктора. В строке 1 переменной $proto присваивается значение из массива @_. В строке 2 переменной $class присваиваем значение объекта или имя класса, эту строку можно было записать так:
Вот пример работающего конструктора:
Эти массивы нужны при создании модулей, для экспортирования функций в пространство имён программы которая вызвала данный модуль обычно это main. PS: Задавай в 1 топике, 1 вопрос. Иначе модераторы будут иметь не довольный вид. ;) Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||||||||
|
|||||||||||||||
| kostofffan |
|
|||
|
Unregistered |
korob2001 , спасибо. Я примерно понял
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |