C 類的繼承和派生

2022-04-07 07:37:42 字數 2558 閱讀 8480

1.1 繼承:在定義乙個新類b時,如果該類與某個已有的類a相似(指的是b擁有a的全部特點),那麼就可以把a作為乙個基類,把b作為基類的乙個派生類(子類)。

1.2 派生:

2.1 格式:class 派生類名: public 基類名    ;

2.2 **例項:

class chuman

};class b:public a

};int main()

以上**輸出為:"i must say b"和「a」。5.1 不同型別成員的訪問許可權:

基類的private成員:可以被下列函式訪問

-基類的成員函式

-基類的友元函式

基類的public成員:可以被下列函式訪問

-基類的成員函式

-基類的友元函式

-派生類的成員函式

-派生類的友元函式

-其他函式

基類的protected成員:可以被下列函式訪問

-基類的成員函式

-基類的友元函式

-派生類的成員函式可以訪問當前物件的基類的保護成員

5.2 注:只能訪問當前物件的基類的保護成員

5.3 **例項:

class a;

class b:public a

};

6.1 建構函式的執行順序:在建立派生類的物件時,需要呼叫基類的建構函式,初始化派生類物件中從基類繼承的成員。在執行乙個派生類的建構函式之前,總是先執行基類的建構函式。

6.2 呼叫基類建構函式的兩種方式:

-顯式方式:在派生類的建構函式中,為基類的建構函式提供引數。

-隱式方式:在派生類的建構函式中,省略基類的建構函式時,派生類的建構函式則自動呼叫基類預設的建構函式。

6.3 **例項:

class bugs

}; class nobugs:public bugs

};

6.4 析構函式的執行順序:執行完派生類的析構函式後,自動呼叫基類的析構函式。

6.5 包含成員物件的派生類的建構函式的寫法:

class skill 

};class flybug: public bug ;

flybug::flybug( int legs, int color, int wings):

bug(legs,color),sk1(5),sk2(color) ,nwings(wings)

6.6 小結:

在建立派生類的物件時

在派生類物件消亡時:

析構函式的呼叫順序與建構函式的呼叫順序相反。

class base ;

class derived : public base ;

base b;

derived d;

7.1 派生類物件可以賦值給基類物件:b = d;

7.2 派生類物件可以初始化基類引用:base & br = d;

base * pb = & d;

注:如果派生方式是private或protected,則上述三條不行。

7.4 protected繼承和private繼承:

7.5 基類與派生類的強制轉換:公有派生的情況下,派生類物件的指標可以直接賦值給基類指標。

base * ptrbase = &objderived;

ptrbase指向的是乙個derived類的物件;*ptrbase可以看作乙個base類的物件,訪問它的public成員直接通過ptrbase即可,但不能通過ptrbase訪問objderived物件中屬於derived類而不屬於base類的成員。

注:

base * ptrbase = &objderived;

derived *ptrderived = (derived * ) ptrbase;

8.1 定義:類a派生類b,類b派生類c,類c派生類d,那麼:

– 類a是類b的直接基類

– 類b是類c的直接基類,類a是類c的間接基類

– 類c是類d的直接基類,類a、b是類d的間接基類

8.2 宣告:在宣告派生類時,只需列出他的直接基類。派生類沿著類的層次自動向上繼承它的間接基類。

8.3 派生類的成員:

C 繼承和派生類

繼承和派生類 繼承性是物件導向程式設計中最重要的機制。這種機制提供了無限重複利用程式資源的一種途徑。通過c 語言中的繼承機制,可以擴充和完善舊的程式設計以適應新的需求。這樣不僅可以節省程式開發的時間和資源,並且為未來程式增添了新的資源。class student class studend1 利用原...

類的繼承和派生

格式 class 派生類名 繼承方式 基類名,繼承方式 基類名.繼承形式多種多樣 繼承會把基類的所有成員均繼承 1.graph lr a類 b a類 c graph lr a類 b類 b類 c類 graph lr a類 b類 b類 c類 a類 d類 d類 c類 繼承方式有 public,protec...

C 類的繼承和派生,訪問控制

c 中的繼承是物件導向的特點之一,其他兩個為封裝和多型。繼承是a is a b,而組合是a has a b.class a 派生類是具體的個性,積累是抽象的共性。乙個派生類有多個基類叫做多繼承,單個叫做單繼承。e.g.calss a public b 區別 域作用符 和 繼承 繼承 吸收 新增 改變...