類的繼承課程筆記

2021-08-21 02:42:57 字數 2656 閱讀 2065

類的繼承部分課程筆記

一,基礎知識

1.類之間的繼承關係

(1)在已有類的基礎上建立新類的過程稱為繼承

乙個類b繼承a類,或者說從類a派生類b

那麼類a稱為基類(父類),類b稱為派生類(子類)

(2)基本的語法形式

class 基類名

void  put_xy()   

protected:    int x, y ;//定義的是protected型別資料成員

class b : public a

;void  make_s()  ;       // 使用基類資料成員x,y

protected:   int s;

class c : public b

int  get_v()

void  make_v()          // 使用基類成員函式

protected:    int h, v;

int main()

;                //基類中定義了成員b,而子類中也定義了b,兩個成員是重名

void f ()

void print() //在基類中定義的成員函式

class b : public a

void print()          //定義同名函式

void printab()

static int i;

void out() ;

class d:private b  ;

b b1,*pbl;d d1;

pb1=&b1;        //合法,基類b的物件b1和b類的指標

pb1=&d1;        //非法,不允許將基類指標指向它的私有派生類物件

(2)允許將乙個宣告為指向基類的指標指向其公有派生類物件,但是不能將乙個宣告為指向派生類物件的指標指向其基類的乙個物件。

(3)宣告為指向基類物件的指標,當其指向公有派生類物件時,只能用它來直接訪問派生類中從基類繼承來的成員,而不能直接訪問公有派生類的定義的成員。

二、心得總結

在使用繼承的過程中,要注意將基類中的成員設定為保護型別,子類才能夠訪問

還有比較重要的一點是,關於基類的初始化,要用到基類的初始化列表,可以對基類進行初始化,要注意它的初始化順序和析構函式的使用順序

那麼,可以考慮這樣乙個問題,從點到圓,再到圓柱體,那麼圓可以看做點的派生類,圓柱體可以看做是圓的派生類

從下面的**中可以來考慮繼承的實際使用:

classpoint

intgety() const

protected:   int x, y;       // point類的資料成員

};

point::point( int a, int b )

// 對資料成員置值

voidpoint :: setpoint ( int a, int b )

// 過載插入算符,輸出物件資料

ostream&operator<< ( ostream &output , const point &p )

//完成了對點的初始化定義和重新複製

classcircle : public point

;

// 帶初始化式建構函式,首先呼叫基類建構函式

circle::circle(double r, int a, int b ): point( a, b )

// 對半徑置值,同時對a,b進行初始化

voidcircle::setradius ( double r )

// 返回半徑值

doublecircle::getradius() const

// 計算並返回面積值

doublecircle::area() const

// 輸出圓心座標和半徑值

ostream& operator<< ( ostream &output, const circle &c)

classcylinder:public circle

;

intmain()

{ pointp(72,115);

cirlec(2.2,37,43);

cylindercyl(5.7,2.5,12,23);

Python入門課程2 2 類的繼承

1 繼承 即允許基於乙個現有的類作為起點定義新的類的一種技術 2 父類與子類 在物件導向的術語中,通常描述現有的類為基類 bass class 父類 parent class 或者超類 superclass 基於現有類新定義的類為子類 subclass或childclass 下面以課程2.1中cre...

C 類的繼承筆記

在乙個已存在的類上建立乙個新類。class student public stud class student public stud student是新類 stud是已存在的基類 定義派生類的一般形式為 class 派生類名 引用許可權 基類名 引用許可權可以是private和public。引用許...

c 學習筆記 類繼承

現在有乙個記錄身份id的類 ifndef head h define head h include include using namespace std class idcard endif 實現部分 include head.h idcard idcard const string n,cons...