powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Наследование. Как вызвать конструктор базового класса?
5 сообщений из 5, страница 1 из 1
(Perl) Наследование. Как вызвать конструктор базового класса?
    #33762022
JAPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как правильно вызвать конструктор базового класса? Я правильно делаю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
package packageA;

sub new {
    bless {}, shift;
}

 1 ;

package packageB;

use base qw/packageA/;

sub new {
    my $class = shift;
    my $self = $class->SUPER::new;
    bless $self, $class;
}

 1 ;
...
Рейтинг: 0 / 0
(Perl) Наследование. Как вызвать конструктор базового класса?
    #33764665
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
package packageA;

sub new {
    my $class = shift;
    $class = ref $class if ref $class; #-- возможность использовать как packageA::new так и такую комбинацию:
                                       #--  $a = packageA::new;
                                       #--  $b = $a->new;
    bless {}, $class;
}

 1 ;

package packageB;

use base qw/packageA/;

sub new {
    my $class = shift;
    $class = ref $class if ref $class;  # -- аналогично... :)
    my $self = $class->SUPER::new;
#    bless $self, $class; -- уже блеснутый, повторно блесать не надо :)
}

 1 ;
[/quot]
...
Рейтинг: 0 / 0
(Perl) Наследование. Как вызвать конструктор базового класса?
    #33764668
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: насчет второго блеса может и погорячился.. мот и нужон... давно на перле не писал :(
...
Рейтинг: 0 / 0
(Perl) Наследование. Как вызвать конструктор базового класса?
    #33764764
JAPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. А блесать по идее нужно. Иначе как, возвращать $self? В смыле:

Код: plaintext
1.
2.
3.
4.
5.
sub new {
my $class = shift;
$class = ref $class if ref $class;
$class->SUPER::new;
}

Что то я не нахожу документации по таким вещам. Даже в перловых туториалах все вокруг да около а конкретного этот вопрос не освещен.
...
Рейтинг: 0 / 0
(Perl) Наследование. Как вызвать конструктор базового класса?
    #33764842
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ближе к вечеру постараюсь скинуть примерчик :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Наследование. Как вызвать конструктор базового класса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]