免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1752 | 回复: 5
打印 上一主题 下一主题

关于 伟大的 类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-11 23:27 |只看该作者 |倒序浏览
package MyPerson;
use strict;
#use warnings;
use vars qw(@ISA);
sub new {
    my ($class, @args) = @_;
    my ($first,$last,$id,$father,$mother) = @args;
    my $self = bless {
        'fname' => $first,
        'lname' => $last,
        'id' => $id,
        'mother' => $mother,
        'father' => $father,
    }, $class;
    return $self;
}
sub father {
    my ($self,$val) = @_;
    return $self->{'father'};
}
sub id { return shift->{'id'} }

1;



#!/usr/bin/perl -w
use strict;
use MyPerson;
my $person = MyPerson->new('jimbo', 'gumbo', 1,2,3);
my @family = (undef,$person); # 0 index needs to be empty
#print "@family\n";
push @family, MyPerson->new('mom', 'gumbo', 3, 0, 0);
print "@family\n","\n";
push @family, MyPerson->new('dad', 'gumbo', 2, 0, 0);
#print "@family\n";
my $dad = $family[$person->father];
print "$dad\n","\n" ;
print "$person\n";
print "father id is ", $person->father, "\n";
print "father obj id is $dad id is ", $dad->id,"\n"


结果:
MyPerson=HASH(0x289f6c) MyPerson=HASH(0x1829fc4)

MyPerson=HASH(0x1829fc4)

MyPerson=HASH(0x289f6c)
father id is 2
father obj id is MyPerson=HASH(0x1829fc4) id is 3




本来想通过程序来体会一下类的工作原理的。没想到 不体会 不知道,一体会 更不知道了。
不明白 怎么出现这么对内存地址。类这部分感觉超级晕!还请不吝赐教。

是不是要学好类 ,引用,模块是重点。

[ 本帖最后由 snss1983 于 2008-9-17 11:32 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-09-11 23:30 |只看该作者
还是按照大骆驼的章节顺序来学吧。
别想一口气吃个大胖子。
你现在欠缺的不光是引用和模块,
连一些最基本的语法都没搞熟。

论坛徽章:
0
3 [报告]
发表于 2008-09-12 09:47 |只看该作者
其实你知道你push进@family 的不是object,而是obj的ref就好了。

论坛徽章:
0
4 [报告]
发表于 2008-09-12 13:42 |只看该作者
你可以从顶端建造金字塔么

论坛徽章:
0
5 [报告]
发表于 2008-09-17 11:31 |只看该作者

my ($class, @args) = @_;

my ($class, @args) = @_;
这个程序的代码 基本上是读懂了。但是发现my ($class, @args) = @_;语言中@_送来的数据都给了@args 没有给$class.这是为什么??????

论坛徽章:
0
6 [报告]
发表于 2008-09-17 12:47 |只看该作者

回复 #5 snss1983 的帖子

Impossible
不信你自己打印一下$class好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP