C 中的物件導向筆記

2022-09-05 17:45:09 字數 930 閱讀 4672

公共繼承,相當於屬於關係。如class b:public a,表示b就是a,a做到的,b也能做到。

class a

{};class b:

public

a{};

a a;

b b;

a=b;//

錯誤,因為a不一定是b

b=a;//

正確,b就是a

public繼承下,會出現名字覆蓋:b與a若有同名函式,則a中的該函式將被覆蓋,包括a中該函式的過載函式。

關於虛函式

含有純虛函式如: virtual void fun()=0; 的類是抽象類,我們不能建立抽象類的物件。若a中有純虛函式,則a a=new a是錯的,而a a=new b才是正確的。

純虛函式:

派生類中必須重新宣告該函式。(宣告乙個純虛函式的目的是為了讓派生類只繼承介面)

純虛函式的實現,需要申請才能使用,如下所示

class a

;void

a::fun()

class b

};class c

;void

c::fun()

非純虛函式:

派生類會繼承該函式的宣告與實現,可自己實現以覆蓋。不安全的原因是:派生類忘記自定義繼承過來的函式時,會使用預設的實現(即基類的實現)。而此  預設的函式實現可能不適合此派生類。

非虛函式:

抽象類(只能是抽象類)會強制派生類繼承該類的非虛函式,即抽象類的非虛函式將會覆蓋所有派生類的同名函式,此做法剛好與非抽象類的繼承相反。

總結:

在公共繼承下,純虛函式、非純虛函式和非虛函式在抽象類的繼承當中的作用分別是:只繼承介面、繼承介面與預設實現、繼承介面及強制實現。

c 物件導向筆記

繼承形式如下 class derived class access specifier base class當乙個類派生自基類,該基類可以被繼承為 public protected 或 private 幾種型別。繼承型別是通過上面講解的訪問修飾符 access specifier 來指定的。我們幾乎...

C 筆記 物件導向

c 物件導向的三大特性 封裝 繼承和多型。封裝 將資料和方法寫進類中,避免外界干擾和保護資料,使得 模組化。繼承 乙個類 派生類 繼承另乙個類 基類 的所有屬性和方法,同時它還可以有另乙個類不具備的方法和屬性 可拓展 多型 c 多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式 覆蓋或者稱為...

C 中的物件導向

物件導向是一種設計思想,其實就是將一些功能進行封裝,使得這個功能有乙個可以使用的實體。比方說狗就可以當成乙個物件,其完成的功能是叫。在 c 中物件導向也是一樣的,其也有三大屬性 封裝,繼承,多型。下面就來看看是如何在 c 中實現的。1 首先先說封裝 還是以狗叫為例,其功能為叫,按照一般的寫法就會在主...