|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 15 Apr 2002 11:23:22 To : Yuri Mashkovtsev Subject : Re: Прототипы и методы объектов -------------------------------------------------------------------------------- Здравствуй, Yuri Mashkovtsev. YM> Andrey Sapozhnikov <sapa@icb.chel.su> wrote: YM> > К сожалению нет. Как и при вызове функций по ссылке. YM> > Method calls are not influenced by prototypes either, YM> > because the function to be called is indeterminate at com- YM> > pile time, since the exact code called depends on inheri- YM> > tance. YM> Exact code called зависит еще и от run-time значений переменных, YM> которые могут хранить как название класса, так и название метода. YM> Мысль была следующая: коль скоро метод -- это суть подпрограмма, YM> то прототипирование будет таки работать, хотя и не при YM> $self->methodname(arg1, arg2) # s/self/someobject/ YM> , а при YM> Classname::methodname(arg1, arg2) YM> То есть прототипы проверить можно дублированием вызова метода YM> объекта вызовом той же функции (который doesn't do inheritance). Hу, можно. Hо есть подозрение, что толку ноль. Ибо проверить вызовы этого метода все равно не получится. Получится проверить только заведомо корректный вызов функции изнутри метода, что как раз нафиг не нужно. YM> У нутре же необходимо проверить первый аргумент на предмет того, YM> не является ли он (blessed) reference. Типа: YM> $invocant = shift; YM> [do something difference] if UNIVERSAL::isa($invocant, $datatype) YM> $datatype подставить по вкусу. А вот этого как раз делать не надо. А то информацию из $self достать будет невозможно. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454b762fa5c.html, оценка из 5, голосов 10
|