Perlコーディング初心 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
82:nobodyさん 09/02/21 05:09:33 >>81 質問内容が今ひとつ分からない。 package Parent; sub new { my ($proto) = @_; my $class = ref($proto) || $proto; return bless { greeting => 'hello' }, $class; } package Child; use base qw(Parent); sub new { $_[0]->SUPER::new } package main; use Data::Dumper; print Dumper(Child->new); # new print Dumper(Child->new->new); # clone 83:nobodyさん 09/02/21 05:32:46 ああもしかして、メソッドをオーバーライドしないときの動作かな? メソッドが実装されていなければ、親のクラスを辿って実行するよ。 package Parent; sub new { bless { greeting => 'hello' }, $_[0] } sub greeting { return $_[0]->{greeting} } package Child; use base qw(Parent); package main; print Child->new->greeting, "\n"; # Parentのメソッドが呼ばれる 84:nobodyさん 09/02/21 08:40:32 >>83 具体例を出すべきでしたね、すみません。 package Parent; sub new { bless {},shift } sub whoami { print "parent\n" } package Child; use base 'Parent'; sub whoami { print "child\n" } package main; my $obj = Child->new; $obj->whoami; # child $obj->SUPER::whoami; # エラー。"parent\n"を出してほしい
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5504日前に更新/66 KB
担当:undef