C 複習之路十一 類的繼承

2021-08-19 07:14:00 字數 1570 閱讀 7380

一、複習三種訪問控制符

public:修飾的成員變數或者方法,可以在類的外部或者類的內部使用

private:修飾的成員變數或者方法,只能在類的內部使用,外部不能使用

protected:修飾的成員變數或者方法,只能在類的內部或者子類內部使用,不能在類的外部使用

這三種訪問控制符可以修飾類的成員屬性,同時在繼承的時候也能夠修飾其繼承的方式

二、類的繼承

通過繼承聯絡在一起的類構成一種層次關係,通常在層次關係的根部有乙個基類,其他類則是直接或者間接地從基類繼承過來。

我們先來看乙個繼承的例子

class a

;class b : public a

;

從上面的例子我們可以看到a類裡面有三個成員變數a,b, c,分別是public, private, protected的,還有乙個public的成員函式。b類繼承a類的方式是public的。

通過一些繼承方式我們就可以在派生類中訪問基類中成員。但是並不是所有的繼承方式都是可以訪問的,是否能夠訪問是由基類的訪問控制符和繼承方式決定的。

三、三種繼承方式的區別

我先將他們三者的區別用乙個**表示出來

原有的訪問屬性繼承

方式public

private

protected

public

public

private

protected

private

private

private

private

protected

protected

private

protected

1、通過public方式繼承的,原有的訪問屬性保持不變

①如果原有的訪問屬性是public ,那麼我們就可以在類的內部或者外部訪問基類的public成員

②如果原有的訪問屬性是private,那麼我們將不能訪問基類的private成員

③如果原有的訪問屬性是protected,那麼我們可以在派生類的內部訪問基類的protected成員,但是不能在類的外部訪問它。

2、通過private方式繼承的,所有的屬性都變成了private。

①如果原有的訪問屬性是public ,那麼我們可以在派生類的內部訪問,但是不能再派生類的外部訪問基類的成員

②如果原有的訪問屬性是private, 那麼我們將不能訪問基類的private成員。

③如果原有的訪問屬性是protected,那麼我們可以在派生類的內部訪問基類的protected成員,但是不能在類的外部訪問它。

3、通過protected方式繼承的,原理來的public變成了protected,private和protected都保持不變

①如果原有的訪問屬性是public ,那麼我們可以在派生類的內部訪問基類的public成員,但是不能在類的外部訪問它

②如果原有的訪問屬性是private,那麼我們將不能訪問基類的private成員。

③如果原有的訪問屬性是protected,那麼我們可以在派生類的內部訪問基類的protected成員,但是不能在類的外部訪問它。

【注意】以上說的訪問都是直接訪問。

十一 類的靜態成員

成員變數的回顧 通過物件名能夠訪問public成員變數 每個物件都可以有屬於自己的成員變數 成員變數不能在物件之間共享 新的需求 統計類的程式執行期間有多少個物件同時存在 保證程式的安全性,並隨時可以獲取物件的數目 問題 使用普通的成員變數可行嗎?類的靜態成員 在c 中可以定義靜態成員變數和靜態成員...

C 快速入門 十一 類的其他內容

1 靜態成員 由前面的介紹知道,一般的類成員只有例項化 後的物件名 才能訪問,可以簡單理解為 一般的類成員屬於類的例項。而使用 關鍵字static 修飾的類成員可以通過類名直接訪問。class example void setsum intn int example sum 0 手動設定初始值 in...

js小白之路 十一 原型與繼承

原型 prototype。方法背後,專門儲存由方法建立出來的物件的共有資料 建構函式 物件模板 專門用來反覆建立相同結構的物件的專門的方法。new後面跟的都是建構函式。function student name,age var ll new student 李雷 8 用new呼叫建構函式 自有屬性 ...