亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3980 | 回復(fù): 6
打印 上一主題 下一主題

perl繼承學(xué)習(xí)的兩點(diǎn)疑問 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-02-04 11:37 |只看該作者 |倒序?yàn)g覽
1.new函數(shù)支持繼承的定義方式:

package:Father:

sub new
{
        my $class = shift;------------------這邊具體是什么含義,我發(fā)現(xiàn)沒有這一行的時(shí)候,在子類Sun 的new中也是可以使用$this= Father::new,為什么呢?還屬于繼承嗎?       
            my $this = {};
        bless $this,$class;
        return $this;
}


2.在沒有繼承的時(shí)候,子類怎么找到父類的變量的?
自己的操作:

Package:Father

sub new
{
        my $this = {};
        $this->{'father'}='father';
        bless $this;
        return $this;
}

sub setfathertype
{
        my ($class,$name)=@_;
        $class->{father}=$name;
        print "Set father Type  $name: \n";
}

子類sun調(diào)用:
sub new
{
        # my $type=shift;
        my $this= {} ;   ----------這邊沒有繼承
        $this->{'sun'}='Gaoyou';
        bless $this;
        return $this;
}

my $m= new sun;
print "father type is $m->{father} \n";-----------這邊是會(huì)報(bào)錯(cuò)的

如果是先調(diào)用了父類的子函數(shù)setfathertype ,再使用$m->{father} 是可以的,是什么原因呢?是因?yàn)樵谧雍瘮?shù)中使用了變量,加入了hash里面了?那這邊應(yīng)該跟繼承是沒有關(guān)系的吧?
$m->setfathertype(father_nanjing');
print "Now the fathertype is $m->{'father'} \n";


請(qǐng)幫忙解惑下,祝各位新年快樂~~~

論壇徽章:
3
2015亞冠之阿爾希拉爾
日期:2015-08-15 16:33:2215-16賽季CBA聯(lián)賽之四川
日期:2016-01-03 13:37:0515-16賽季CBA聯(lián)賽之四川
日期:2016-06-13 15:53:36
2 [報(bào)告]
發(fā)表于 2016-02-04 11:45 |只看該作者
包名或類名。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2016-02-05 10:15 |只看該作者
回復(fù) 2# minirain


很感謝你的解答   
能幫忙針對(duì)兩個(gè)問題給個(gè)更詳細(xì)的解答嗎   

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
4 [報(bào)告]
發(fā)表于 2016-02-05 10:51 |只看該作者
回復(fù) 1# 815138698


    把你的完整出錯(cuò)代碼貼上來。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-02-05 14:41 |只看該作者
回復(fù) 4# MMMIX


    可能描述的不清楚,我再重新帶上代碼說明下我的疑問:

1.  
父類的函數(shù):

package:Father;

sub new
{
        # my $class = shift;
        my $this = {};
        $this->{'Father'}='Father';
        bless $this;
        # bless $this,$class;
        return $this;
}

sub setFathertype
{
        my ($class,$name)=@_;
        $class->{'Father'}=$name;
        print "Set Father Type  $name: \n";
}

子類的函數(shù):
package Sun;
sub new
{
        my $this= {};
        my $this= Father->new;#############繼承
        $this->{'Sun'}='Sun';
        bless $this;
        return $this;
}

my $m= new Sun;
print " Father type is $m->{'Father'} \n";

疑問:父類的new函數(shù)中這行 my $class = shift;代表是可以被繼承的,但是如果沒有這一行的時(shí)候,子類sun的new() 也寫成my $this= Father->new,發(fā)現(xiàn)是可行的,而且最后也能通過$m->{Father}訪問父類的變量,想知道m(xù)y $class = shift 這一行有和沒有有什么區(qū)別嗎?  沒有的話能不能被繼承?



2.子類sun中沒有繼承Father
sub new
{
        my $this= {};
        $this->{'Sun'}='Sun';
        bless $this;
        return $this;
}


如果我在sun里面直接使用

print "father type is $m->{father} \n";-----------是會(huì)報(bào)錯(cuò)的,找不到$m->{father}。找不到$m->{father}。

但是如果先調(diào)用了父類的子函數(shù)setfathertype ,再使用$m->{father} 是可以的,是什么原因呢?是因?yàn)樵谧雍瘮?shù)中使用了變量,加入了hash里面了?那這邊應(yīng)該跟繼承是沒有關(guān)系的吧?


$m->setFathertype('Father_nanjing');
print "Now the Father type is $m->{'Father'} \n";----OK

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
6 [報(bào)告]
發(fā)表于 2016-02-14 10:52 |只看該作者
回復(fù) 5# 815138698


   
疑問:父類的new函數(shù)中這行 my $class = shift;代表是可以被繼承的,


誰說的?

Perl OO 的繼承(Inheritance) 參見:http://perldoc.perl.org/perlobj.html#Inheritance

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2016-02-27 02:06 來自手機(jī) |只看該作者
雖然我不知道你想說什么,先了解下shift是個(gè)什么東西,還有就是bless又起了什么作用,了解了,或者一切都會(huì)迎刃而解。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP