版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章虛函數(shù)與多態(tài)性
>多態(tài)性(Polymorphism)是指一個(gè)名字,多種語義;或界面
相同,多種實(shí)現(xiàn)。
>重載函數(shù)是多態(tài)性的一種簡(jiǎn)單形式。
>虛函數(shù)允許函數(shù)調(diào)用與函數(shù)體的聯(lián)系在運(yùn)行時(shí)才進(jìn)行,稱為
動(dòng)態(tài)聯(lián)編。
第8章虛函數(shù)與多態(tài)性
2-
甯孑工常出版社
SPublishingHouseofElectronicsIndustry
8.1靜態(tài)聯(lián)編
A聯(lián)編是指一個(gè)程序模塊、代碼之間互相關(guān)聯(lián)的過程。
?靜態(tài)聯(lián)編,是程序的匹配、連接在編譯階段實(shí)現(xiàn),也稱為早期匹配。
重載函數(shù)使用靜態(tài)聯(lián)編。
A動(dòng)態(tài)聯(lián)編是指程序聯(lián)編推遲到運(yùn)行時(shí)進(jìn)行,所以又稱為晚期聯(lián)編。
switch語句和if語句是動(dòng)態(tài)聯(lián)編的例子。
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006O
得甯孑工學(xué)出版杜
?—??=?PublishingHouseofElectronicsIndustry
8.1靜態(tài)聯(lián)編
普通成員函數(shù)重載可表達(dá)為兩種形式:
1.在一個(gè)類說明中重載
例如:Show(int,char);
Show(char*,float);
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
國甯孑工學(xué)出版杜
PublishingHouseofElectronicsIndustry
8.1靜態(tài)聯(lián)編
普通成員函數(shù)重載可表達(dá)為兩種形式:
1.在一個(gè)類說明中重載
2.基類的成員函數(shù)在派生類重載。有3種編譯區(qū)分方法:
(1)根據(jù)參數(shù)的特征加以區(qū)分
例如:Show(int,char);與
Show(char*,float);不是同一函數(shù),編譯能夠區(qū)分
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
國甯孑工學(xué)出版杜
PublishingHouseofElectronicsIndustry
8.1靜態(tài)聯(lián)編
普通成員函數(shù)重載可表達(dá)為兩種形式:
1.在一個(gè)類說明中重載
2.基類的成員函數(shù)在派生類重載。有3種編譯區(qū)分方法:
(1)根據(jù)參數(shù)的特征加以區(qū)分
(2)使用“::”加以區(qū)分
例如:A::Show();
有另!J于B::Show();
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
得甯孑工學(xué)出版杜
?—??=?PublishingHouseofElectronicsIndustry
8.1靜態(tài)聯(lián)編
普通成員函數(shù)重載可表達(dá)為兩種形式:
1.在一個(gè)類說明中重載
2.基類的成員函數(shù)在派生類重載。有譯區(qū)根據(jù)this指針類型區(qū)分
(1)根據(jù)參數(shù)的特征加以區(qū)分
(2)使用“::”加以區(qū)分
(3)根據(jù)類對(duì)象加以區(qū)分
例如:Aobj.Show()調(diào)用A::Show()
Bobj.Show()調(diào)用B::Show()
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
8.2類指針的關(guān)系
基類指針和派生類指針與基類對(duì)象和派生類對(duì)象4種可能匹配:
>直接用基類指針引用基類對(duì)象;
>直接用派生類指針引用派生類對(duì)象;
A用基類指針引用一個(gè)派生類對(duì)象;
>用派生類指針引用一個(gè)基類對(duì)象。
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006O
8.2.1基類指針引用派生類對(duì)象
classA
例如:
A*p;〃指向類型A的對(duì)象的指針
AAobj;〃類型A的對(duì)象classB:publicA
BBobj;〃類型B的對(duì)象
p=&A_obj;//p指向類型A的對(duì)象
p=&Bobj;//p指向類型B的對(duì)象,它是A的派生類
>利用p,可以通過B_obj訪問所有從A類繼承的元素,
但不能用p訪問B類自定義的元素(除非用了顯式類型轉(zhuǎn)換)
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8—1使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classBclass:publicAclass
{charphonenum[20];
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?"\n";}
};
voidmain()
{A_class*Ajp;AclassAobj;
B_classB_obj;
Ajp=&Aobj;
A_p->put_name("Wangxiaohua");A_p->show_name();
A_p=&Bobj;
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678”);
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
classAclass
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}/k
J,
classBclass:publicAclassclassBclass:publicAclass
{charphonenum[20];基類指針
public:voidput_phone(num)num,num);}
voidshow_plx^he(){cout?phonenum?"\n";}
};
voidmain()
*A^pT)A_classAobj;
B^cTass~~ETotj;
Ajp=&Aobj;
A_p->put_name("Wangxiaohua");A_p->show_name();
A_p=&Bobj;
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678");
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
classAclass
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classBclass:publicAclassclassBclass:publicAclass
{charphonenum[20];
public:voidput_phone(char*num)>(-strepy
基類指針
voidshow_phone(){cout$^<phoner
);/指向基類對(duì)象
voidmain()/
{A_class*Ajp;AclarsAobj;
A_p->put_name("Wangxiaohua");A_p->show_name();
A_p=&Bobj;
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678”);
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8—1使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
public:voidput_name(char*s){strcpy(name,s)
voidshownameQ{cout?name?”\n”;
J,
classBclass:publicAclass
{charphonenum[20];
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonum
基類指針
};
voidmain()調(diào)用基類成員函數(shù)
{A_class*Ajp;A_classA_c^j;
B_classB_obj;
Ajp=&Aobj;
A_p->put_name(nWangxiaohuan);A_p->shownameQ;
Ajp=&Bobj;
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678”);
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
classAclass
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classB_class:publicA_classclassBclass:publicAclass
{charphonenum[20];--------------
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?"\n";}
3/~
基類指針
voidmain()/
{A_class*Ajp;A_cla^Aobj;指向派生類對(duì)象
B_classB_obj;/
A_p=&Aobj;/
Ap->putnam^f"Wangxiaohua");A_p->show_name();
=&B
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678”);
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?"\n";}
};
voidmain()調(diào)用
{A_class*Ajp;A_classAobj;
從基類繼承的成員函數(shù)
B_classB_obj;
Ajp=&Aobj;
A_p->put_name("Wangxiaohua")/A__p->show_name();
A_p=&Bobj;
A_p->put_name(''Chenming”);A_p->show_name();
Bobj.putphone(”5555」2345678”);
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8—1使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classBclass:publicAclass
{charphonenum[20];
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?"\n";}
};
voidmain()
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
{charname[20];
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classBclass:publicAclass
{charphonenum[20];
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?M\nH;}
};
voidmain()
{A_class*Ajp;AclassA/obj;對(duì)基類指針強(qiáng)類型轉(zhuǎn)換
B_classB_obj;/
A_p=&Aobj;/調(diào)用派生類的成員函數(shù)
A_p->put_name("W^rfgxiaohua");A_p->showname();
A_p=&Bobj;/
A_p->put_name(/Chenming");A_p->show_name();
Bobj.putphon4j,555512345678");
Cf^B_cIass_*JA_25>>show_phone();
}一一
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
#include<string.h>例8T使用基類指針引用派生類對(duì)象
classAclass
charname[20];
public:voidput_name(char*s){strcpy(name,s);}
voidshow_name(){cout?name?"\n";}
classB_class:publicA_classclassBclass:publicAclass
{charphonenum[20];----------------------------------------
public:voidput_phone(char*num){strcpy(phonenum,num);}
voidshow_phone(){cout?phonenum?"\n";}
};
voidmain()
{A_class*Ajp;AclassAobj;
B_classB_obj;
Ajp=&Aobj;
A_p->put_name("Wangxiaohua");A_p->
A_p=&Bobj;
A_p->put_name("Chenming");A_p->show_name();
Bobj.putphone(”5555」2345678");
((B_class*)A_p)->showjphone();
}"
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
8.2.2派生類指針引用基類對(duì)象
>派生類指針只有經(jīng)過強(qiáng)制類型轉(zhuǎn)換之后,才能
引用基類對(duì)象
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>例8?2日期時(shí)間程序。在派生類中調(diào)用基類
#include<string.h>
同名成員函數(shù)
classDate
{public:
Date(inty,intm,intd){SetDate(y,m,d);}
voidSetDate(inty,intm,intd){year=y;month=m;day=d;}
voidPrint(){cout?year?7'?month?7'?day?n;";}
protected:intyear,month,day;
);
classDateTime:publicDate
{public:
DateTime(inty,intm,intd,inth,intmi,ints):Date(y,m,d){SetTime(h,mi,s);}
voidSetTime(inth,intmi,ints){hours=h;minutes=mi;seconds=s;}
voidPrint()
{((Date*)this)->Print();
cout?hours??minutes??seconds?'\n';
)
private:inthours,minutes,seconds;
};
voidmain()
{DateTimedt(2003,1,1,12,30,0);
dt.Print();
)
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>例8?2日期時(shí)間程序。在派生類中調(diào)用基類
#include<string.h>
同名成員函數(shù)
classDate
{public:
Date(inty,intm,intd){SetDate(y,m,d);}
voidSetDate(inty,intm,intd){year=y;month=m;day=d;}
voidPrint(){cout?year?7'?month?7'?day?n;";}
protected:intyear,month,day;
};
classDateTime:publicDate/「對(duì)this指針作類型轉(zhuǎn)換
{public:/
調(diào)用基類成員函數(shù)
DateTime(inty,intm,intd,inMi,intmi,intss);)
voidSetTime(inth,intmi^ims){hours=h;minutes=mi;seconds=s;}
voidPrintf)
{*)thisj^>Print();
cout<<hours<<?minutes??seconds?'\n';
)
private:inthours,minutes,seconds;
};
voidmain()
{DateTimedt(2003,1,1,12,30,0);
dt.Print();
)
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>例8?2日期時(shí)間程序。在派生類中調(diào)用基類
#include<string.h>
同名成員函數(shù)
classDate
{public:
Date(inty,intm,intd){SetDate(y,m,d);}
voidSetDate(inty,intm,intd){year=y;month=m;day=d;}
voidPrint(){cout?year?7*?month?7,?day?";'';}
protected:intyear,month,day;
};
classDateTime:publicDate/「對(duì)this指針作類型轉(zhuǎn)換
{public:/
調(diào)用基類成員函數(shù)
DateTime(inty,intm,intd,inMi,intmi,intss);)
voidSetTime(inth,intmi^ims){hours=h;minutes=mi;seconds=s;}
voidPrintf)
{*)thisj^>Print();
cout<<hours<<?minutes??seconds?'\n';
)
private:inthours,minutes,seconds;
};
voidmain()
{DateTimedt(2003,1,1,12,30,0);
dt.Print();
)
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>例8?2日期時(shí)間程序。在派生類中調(diào)用基類
#include<string.h>
同名成員函數(shù)
classDate
{public:
Date(inty,intm,intd){SetDate(y,m,djk
voidSetDate(inty,intm,intd){year
voidPrint(){cout?year?7*<等價(jià)嗎?
protected:intyear,month,day;為什么
};
classDateTime:publicDate
{public:O
DateTime(inty,intm,intd,inth,intmi,ints):Date(y,m,d){SetTime(h,mi,s);}
voidSetTime(inth,intmi,intsP{hours=h;minutes=mi;seconds=s;}
voidPrint()o
{Date::Print();
cout?hours??minutes??seconds?'\n';
}
private:inthours,minutes,seconds;
};
voidmain()
{DateTimedt(2003,1,1,12,30,0);
dt.Print();
)
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
得甯孑工學(xué)出版杜
PublishingHouseofElectronicsIndustry
8.3虛函數(shù)和動(dòng)態(tài)聯(lián)編
>冠以關(guān)鍵字virtual的成員函數(shù)稱為虛函數(shù)
>實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)的關(guān)鍵首先是要說明虛函數(shù),另外,必須用
基類指針調(diào)用派生類的不同實(shí)現(xiàn)版本
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006O
8.3.1虛函數(shù)和基類指針
>基類指針雖然獲取派生類對(duì)象地址,卻只能訪問派生類從基
類繼承的成員
華南理工大學(xué)計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:"?x?"\n";}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyy):Base(xx){y=yy;}
voidwho(){cout?"Firstderivedclass:"?x?",n?y?n\n";}
protected:chary;
);
classSecondd:publicFirstd
{public:
Second_d(charxx,charyy,charzz):First_d(xx,yy){z=zz;}
voidwho(){cout?"Secondderivedclass:n?x?",?y?","?z?"\n";}
protected:charz;
};
voidmain()
{BaseB_obj(W);First_dF_obj(T,O);Second_dS_obj(E,N,D);
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();人
華南理工大』計(jì)算機(jī)學(xué)院周靄如2006一勺
#include<iostream.h>
classBase例8—3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:?X?n\nu;}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
B_objA
protected:chary;y
);
classSecondd:publicFirstF_objTo
{public:
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?”Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');FirstdF_obj(rTf;Second_dS_obj('E','N','D');
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大苧計(jì)算機(jī)學(xué)院周需如2006
#include<iostream.h>
classBase例8—3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:n?x?"\n";}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout??---->
B_objA
protected:chary;IMy
};
classSecondd:publicFirstF_objo
{public:定義基類指針
Second_d(char,charS_objEND
voidwho(){cp(fit?"S
protected:chz;
);
voidmain()
{BaseBy6bj('A');FirstdF_obj(T,'0’);SeconddsS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大學(xué)計(jì)算機(jī)學(xué)院周需如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:?X?n\nn;}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?----
>BobjA
protected:chary;~y
);
classSecondd:publicFirstFobjTO
{public:
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?”Secondd
protected:charz;
};
voidmain()
{BaseB_obj(;FirstdF_obj(T,6');Second_dS_obj(EJN','D');
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大苧計(jì)算機(jī)學(xué)院周需如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwhoO{cout?HBaseclass:“?x?"\nH;}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
p-----?BobjA
protected:chary;y
);
classSecondd:publicFirstF_objTO
{public:z
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?"Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大J計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:"?x?"\n";}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
B_objA
protected:chary;y
);
classSecondd:publicFirstP-----?FobjTo
{public:
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?"Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大J計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:"?x?"\n";}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
B_objA
protected:chary;y
);
classSecondd:publicFirstP-----?Fobjo
{public:
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?"Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大J計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwhoO{cout?HBaseclass:“?x?"\nH;}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
protected:chary;B_objAy
);
classSecondd:publicFirstP-----?FobjTO
{public:z
Second_d(charxx,charyy,chaiS_objEND
voidwho(){cout?"Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大J計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwho(){cout?"Baseclass:"?x?"\n";}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
protected:chary;B_objAy
}?
classSecondd:publicFirstFobjTo
{public:
Second_d(charxx,charyy,chai:ril------>SobjEND
voidwho(){cout?”Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
F_obj.who();
((Secondd*)p)->who();
華南理工大J計(jì)算機(jī)學(xué)院周靄如2006
#include<iostream.h>
classBase例8-3演示基類指針的移動(dòng)
{public:Base(charxx){x=xx;}
voidwhoO{cout?HBaseclass:“?x?"\nH;}
protected:charx;
);
classFirstd:publicBase
{public:First_d(charxx,charyx
voidwho(){cout?
B_objA
protected:chary;y
);
classSecondd:publicFirstF_objTO
{public:z
Second_d(charxx,charyy,chai萬]---?S_objEND
voidwho(){cout?"Secondd
protected:charz;
};
voidmain()
{BaseB_obj('A');First_dF_obj(T,O);Second_dS_obj(E,N,;
Base*p;
p=&Bobj;p->who();
p=&F_obj;p->who();
p=&S_obj;p->who();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:健全社會(huì)工作體制機(jī)制研究
- 2025年高端樓盤售樓顧問服務(wù)合同3篇
- 花椒購銷合同的違約責(zé)任與爭(zhēng)議解決(2025年)3篇
- 2025年度商業(yè)地產(chǎn)租賃合同續(xù)簽協(xié)議4篇
- 2025版學(xué)生住宿環(huán)境安全保障服務(wù)合同3篇
- 2025年食用植物油市場(chǎng)調(diào)研與分析合同3篇
- 二零二五年度裝配式建筑生產(chǎn)與安裝合同范本3篇
- 二零二五年度城市公共交通車輛采購合同15篇
- 2024版汽車牌照轉(zhuǎn)讓合同范本
- 二零二五年度布草洗滌產(chǎn)業(yè)扶貧承包合同:助力鄉(xiāng)村振興4篇
- 企業(yè)文化融入中華傳統(tǒng)文化的實(shí)施方案
- 9.1增強(qiáng)安全意識(shí) 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語文課內(nèi)古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識(shí)點(diǎn)(概念+公式)
- 駕照體檢表完整版本
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測(cè)及風(fēng)險(xiǎn)評(píng)估
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 20100927-宣化上人《愣嚴(yán)咒句偈疏解》(簡(jiǎn)體全)
評(píng)論
0/150
提交評(píng)論