繼承是物件導向三大特性之一
繼承允許依據另乙個類來定義乙個類,這使得建立和維護乙個應用程式變得更容易。這樣做,也達到了重用**功能和提高執行效率的效果。
繼承代表了 is a 關係。
繼承的好處:可以減少重複的**
class a : public b;
a 類稱為子類或 派生類
b 類稱為父類或 基類
派生類中的成員,包含兩大部分:
一類是從基類繼承過來的,一類是自己增加的成員。
從基類繼承過過來的表現其共性,而新增的成員體現了其個性。
派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函式訪問,則應在基類中宣告為 private。
我們可以根據訪問許可權總結出不同的訪問型別,如下所示:
訪問public
protected
private
同乙個類
yesyes
yes派生類
yesyes
no外部類
yesno
no乙個派生類繼承了所有的基類方法,但下列情況除外:
示例:
class
base1
;//公共繼承
class
son1
:public base1};
void
myclass()
//保護繼承
class
base2
;class
son2
:protected base2};
void
myclass2()
//私有繼承
class
base3
;class
son3
:private base3};
class
grandson3
:public son3
};
多繼承即乙個子類可以有多個父類,它繼承了多個父類的特性。
c++ 類可以從多個類繼承成員,語法如下:
class 《派生類名》:《繼承方式1>《基類名1>,《繼承方式2>《基類名2>,…注:訪問修飾符繼承方式是 public、protected 或 private 其中的乙個,用來修飾每個基類,各個基類之間用逗號分隔。;
示例:
#include
using
namespace std;
// 基類 shape
class
shape
void
setheight
(int h)
protected
:int width;
int height;};
// 基類 paintcost
class
paintcost};
// 派生類
class
rectangle
:public shape,
public paintcost};
intmain
(void
)
當上面的**被編譯和執行時,它會產生下列結果:
total area: 35total paint cost: $2450
總結: 多繼承中如果父類**現了同名情況,子類使用時候要加作用域。
c 繼承小結
c 繼承類這一部分雖然不是很難,但是也很重要,在這一塊我自己做了一些總結,下面跟大家交流一下。首先簡單介紹一下繼承的概念 繼承 inheritance 是物件導向程式設計使 可以復用的最重要的手段,它允許程式設計師在保持原有類特性的基礎上進行擴充套件,增加功能。這樣產生新的類,稱派生類。繼承關係有三...
c 中繼承問題小結
1.c 中繼承有公有繼承,保護繼承,私有繼承 定義個基類 include using namespace std class base public void display cout huang endl protected int x private int y 定義乙個派生類 公有繼承 派生類...
C 課程小結 繼承與派生
單繼承與多重繼承的區別 單繼承 乙個子類 派生類 只有乙個父類 只由乙個基類派生而成 多繼承 乙個子類 派生類 有多個父類 由多個基類派生而成 派生類的構成 1 從基類繼承過來的成員 包括資料成員和成員函式 2 在派生類裡面新增的成員 包括資料成員和成員函式 根據繼承方式的不同來調整從基類繼承過來成...