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