貌似我們沒(méi)有人沒(méi)有父親的,對(duì)吧?既然這樣,我們可以寫(xiě)個(gè)father類(lèi):
class father
{
char secondname[10];
}
father類(lèi)有姓(secondname)。 父親是爸爸,那我們是什么那? 想想……兒子或者是女兒。我們可以這樣寫(xiě):
class son : public father
{
char sex[10];
}
再?gòu)?fù)制粘貼一下:
class daughter: public father
{
char sex[10];
}
既然son和daughter都是來(lái)自father的,那他們就應(yīng)該有相同的基因,類(lèi)的數(shù)據(jù)成員就好比是類(lèi)的基因,所以son和daughter自然而然的繼承了father的secondname屬性。相對(duì)于father類(lèi),son和daughter是派生來(lái)的,可以叫做子類(lèi)(派生類(lèi));father是父親,所以叫做父類(lèi)(基類(lèi))。
class father
{
char secondname[10];
father(char sn[])
{
strcpy(secondname,sn);
}
}
class son : public father
{
char sex[10];
son(char sn[],char mysex[]) : father(sn)
{
strcpy(sex,mysex);
}
}
class daughter: public father
{
char sex[10];
daughter: (char sn[],char mysex[]) : father(sn)
{
strcpy(sex,mysex);
}
}
看見(jiàn)子類(lèi)的構(gòu)造函數(shù)怎么寫(xiě)的了嗎?(拷貝構(gòu)造函數(shù)你自己寫(xiě)吧,我累死了) 同理,你還可以寫(xiě)出孫子類(lèi),嘻嘻……還有個(gè)問(wèn)題,我們的mother哪?
class mother
{
char firstname[10];
mother(char fn[])
{
strcpy(firstname,tn);
}
}
現(xiàn)在問(wèn)題有點(diǎn)復(fù)雜:
class son : public father,public mother
{
char sex[10];
son(char sn[],char fn[],char mysex[]) : father(sn),mother(fn)
{
strcpy(sex,mysex);
}
}
class daughter: public father,public mother
{
char sex[10];
daughter: (char sn[],char fn[],char mysex[]) : father(sn),mother(fn)
{
strcpy(sex,mysex);
}
}
寫(xiě)到這,有個(gè)問(wèn)題:public,private和protected。 我不想說(shuō),因?yàn)閷?xiě)起來(lái)比較麻煩,而且一般我們都用public繼承(private也行,反正我不用)。 不過(guò)我要提醒大家的就是protected,想想在類(lèi)里,protected對(duì)成員的限定是怎樣的?繼承過(guò)來(lái)的類(lèi)原本的protected成員又是怎樣的(protected?還是private)?好好想想,不會(huì)就看看書(shū)。
相關(guān)推薦:C++備考之如何學(xué)習(xí)C++與面向?qū)ο螅侯?lèi)與對(duì)象北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |