C 繼承總結

2021-08-20 20:56:21 字數 1740 閱讀 1594

繼承是物件導向程式設計中軟體重用的關鍵技術。繼承機制使用已定義的類作為基礎建立新的類定義,新的類是原有類的資料及操作與新類所增加的資料及操作的組合。新的類把原有的類作為基類引用,而不需要修改原有類的定義。新的類作為派生類引用。這種可擴充、可重用技術大大降低了大型軟體的開發難度。

c++中描述類繼承關係的語句格式為

class 派生類名 : 基類名錶

資料成員和成員函式說明

其中,基類名錶的語句格式如下

訪問控制 基類名1,訪問控制 基類名2,。。。,訪問控制 基類名n

用於表示當前定義的派生類的各個基類。如果乙個基類名錶中只有乙個基類,則表示定義的派生類只有乙個基類,稱為單繼承;如果乙個基類名錶中有多個基類,則稱為多繼承

訪問控制是表示繼承許可權的關鍵字,稱為訪問描述符。可以是

public 公有繼承

private 私有繼承

protected 保護繼承

如果省略訪問描述符,則c++認為是私有繼承,其中,公有繼承是最為常用的繼承方式

乙個派生類公有繼承乙個基類時,基類中所有公有成員(由public定義的資料成員或成員函式)成為派生類的共有成員,基類中所有的保護成員成為派生類的保護成員。

例程class a

public :

void get_xy()

cout<<"enter two numbers of x,y";

cin>>x>>y;

void put_xy()

cout<<"x="int x,y;

class b:public a

public :

int get_s()

void make_s()

protected:

int s;

基類的初始化

建構函式名(變元表):基類(變元表),資料成員1(變元表),。。。,資料成員n(變元表)

例程class point

public:

point (double t1,double t2)

x= t1;

y=t2;

void outpoint()

void outcircle()

重名成員

c++允許派生類的成員與基類成員重名。派生類中訪問重名成員時,遮蔽基類的同名成員,如果要在派生類中使用基類的同名成員,可以顯式地使用作用域符指定,格式如下:

類名::成員

派生類中訪問靜態成員

如果在基類中定義了靜態成員,這些靜態成員將在整個類體系中被共享,根據靜態成員自身的訪問特性和派生類的繼承方式,在類層次體系中具有不同的訪問性質

例程#include

using namespace std;

class b

public :

static void add()

static int i;

void out()

{cout<<"static i = "class d:private b

public :

void f();

void d::f()

i=5;

add();

b::i++;

b::add();

int main()

b x;

d y;

x.add();

x.out();

y.f();

cout<<"static i = "static i=1

static i=8

static i=8

C 繼承總結

一 基類和派生類 類繼承關係的語法形式 class 派生類名 基類名錶 資料成員和成員函式說明 其中,基類名錶 的語句格式如下 訪問控制 基類名1,訪問控制 基類名2,訪問控制 是表示繼承許可權的關鍵字,稱為訪問描述符。可以是 如果省略訪問描述符,則c 認為是私有繼承。如果用關鍵字struct 而不...

C 繼承總結

繼承概念 在原有的類不變的基礎之上,新增一些函式,對功能進行拓展 繼承特點 是物件導向程式設計的的層次結構 是實現由簡單到複雜的認知過程 基類 被繼承的類 派生類 在繼承之後產生的新類 例子 手機系統會不斷更新,然而,我們的手機更新之後的功能只是對原來的功能進行優化和新增 繼承格式 派生類名 繼承許...

C 繼承總結

繼承 1 三種類成員訪問限定符繼承 2 公有繼承 保護繼承 私有繼承 基類的私有成員在派生類是無法被訪問的,如果乙個基類不想讓基類物件之間訪問自己的成員,但是需要在派生類中訪問,那麼可以將該成員設定為 protected 保護類 公有繼承是乙個介面繼承,所有基類可用的成員對子類也可用,每乙個派生類都...