C 學習 多型 解析樹例項分析

2021-09-06 07:11:54 字數 1653 閱讀 3726

出處:

場景

分析:

每個類的節點都必須提供它自己的

calc

方法,所以採用多型進行操作。我們將

node

節點和binnode

節點設計為抽象類,抽象類是不能例項化的類,它們只能作為其他類的父類。乙個包含乙個或多個純虛函式的類稱為抽象類,乙個沒有具體實現的函式稱為純虛函式,只有從乙個抽象類派生的類以及為所有純虛函式提供了實現**的類才能被例項化。一般來說,若乙個類有乙個純虛函式,它可能同時需要乙個虛析構函式。所以類設計層次如下:

//設定乙個虛析構函式

virtual double calc () const = 0;//

設定乙個純虛函式,也就是

=0的意義所在。

}; class numnode: public node//

繼承了node

double calc () const;

private:

const double _num;

}; class binnode: public node

~binnode ();

protected://

使用protected

的原因是它可以被派生類直接使用,這樣我們不用提供

setter

和getter

來進行訪問了。

node * const _pleft;

node * const _pright;

}; class addnode: public binnode

double calc () const;

}; class multnode: public binnode

double calc () const;

}; #endif

tree.cpp

// (c) bartosz milewski 2000

#include "tree.h"

#include

double numnode::calc () const

binnode::~binnode ()

double addnode::calc () const

double multnode::calc () const

int main ()

注:要是用

c語言進行實現的時候我們不可以避免使用

switch

語句,這個例子也說明在

c++中僅在不能使用多型的時候使用

switch

語句。

參考文獻:

出處:

C 多型解析

今天我們,來將將c 的三大特性之一的 多型性 為什麼會有這個呢?因為,我們編寫 時,有的時候,當物件不同時,就需要呼叫不同的函式。在這個時候就需要使用的多型了。再說類的多型性之前我先來說說物件這個概念。物件的概念可以分為兩種型別 所謂的靜態型別,就是一般的型別 而動態型別,舉個例子來說就像是賦值相容...

C 多型解析

因為,我們編寫 時,有的時候,當物件不同時,就需要呼叫不同的函式。在這個時候就需要使用的多型了。再說類的多型性之前我先來說說物件這個概念。物件的概念可以分為兩種型別 所謂的靜態型別,就是一般的型別 而動態型別,舉個例子來說就像是賦值相容規則裡說的 乙個基類物件可以用 派生類物件來賦值 在這裡的這個物...

C 多型繼承解析

在c 中,類的概念是最重要的,類就是實物的乙個模版,或是一種抽象的方法和資料的封裝,每用類宣告乙個變數,那我們就叫做類的例項化,在類的生存區域,會呼叫建構函式,在臨界區則會呼叫析構函式,構造的物件在記憶體中的表示就是類中的資料成員依次構造,如class string 在記憶體中這個string類共有...