c++中的類繼承按成員函式的繼承方式可以分為兩類:函式介面(宣告)繼承(function inte***ce inheritance)和函式實現繼承(function implementation inheritance)。
而對於進行程式設計的程式設計師而言,其所想要的繼承方式大概可以分為以下三種:
(1)derived class只繼承成員函式的介面(宣告);
(2)derived class同時繼承函式的介面和實現,並希望能夠重寫(override)所繼承的實現;
(3)derived class同時繼承函式的介面和實現,並且不希望重寫任何實現。
c++中的成員函式按虛函式可以分為三類:純虛函式(pure virtual function)、虛函式(impure virtual function)以及非虛函式(non-virtual function)。
純虛函式有兩個特性:
(1)必須被所有「繼承了它」的派生類重新宣告並實現;
(2)在抽象類中通常沒有定義。
因此,宣告乙個純虛函式的目的是為了讓派生類只繼承介面。
虛函式本身會提供乙份實現**,並且派生類可以對其進行重寫。
因此,建立乙個虛函式的目的是讓派生類繼承該函式的介面和預設實現。
宣告非虛函式的目的是為了令派生類繼承函式的介面和乙份強制性實現,其所代表的意義是不變性(invariant)凌駕於特異性(specialization)
#include
using
namespace std;
class
airport
;class
airplane
;// 函式實現在類定義之外,為非內聯;反之,則為inline
// 純虛函式也可以進行定義
void airplane::
fly(
const airport & destination)
class
modela
: airplane};
class
modelb
: airplane};
class
modelc
: airplane
;void modelc::
fly(
const airport & destination)
intmain()
這麼一看,還是直接定義成純虛函式比較好,防止忘了重寫虛函式。 C 之類繼承
主要探索 1 派生類對基類protecteed public private三種資料訪問 和這三種繼承方式比較。2 派生類包含子物件。3 子類包含建構函式。通過public方式繼承 具體示例 include include using namespace std 定義基類 class people ...
C 之類繼承
成員訪問控制 在c 中,類的成員訪問控制分為公有public,保護protected,私有private。其訪問許可權物件分為類成員函式和使用者 類的例項化或物件 派生類後面討論。不管是公有,保護還是私有,自身類的成員函式都可以直接訪問 自身類 是為了區分後面的派生類 但是使用者 類的物件 只能訪問...
C 基礎知識之類繼承
using system using system.collections.generic using system.linq using system.text namespace classinherit set pubic修飾,它的子類繼承得到 public void shout class ...