-
特化
鎖定
- 中文名
- 特化
- 含 義
- 由一般到特殊的生物進化方式
- 類 型
- 分化式進化的特殊情況
- 學 科
- 生物學
特化形成過程
特化是指生物的水平發展的物種形成過程,即生物多樣性的形成過程,這種區分可以避免許多不必要的爭論,把這個新的概念體系和以往人們對生物進化研究的理論相結合。並用該方法重新解釋以往人們的研究發現,可以看出生物發展的歷史就是生物進化和特化交替進行的歷史,以此可解釋許多不同理論之間的矛盾。
特化含義
例如馬從多趾向單蹄方向發展,愛爾蘭鹿有特別發達而沉重的角,等等,這些都是特化式進化的結果。生物特化的器官或生理特徵都是對特殊的局部環境高度適應的結果。由於特化,生物類型大大縮小了原有的適應範圍,所以當環境發生突然的或較大的變化時,往往導致它們的滅絕,成為進化樹中的盲枝。
特化簡化式進化
簡化式進化(或稱退化)——由結構複雜變為結構簡單的進化。如:蛔蟲的運動器官、感覺器官和消化器官退化,只有生殖器官發達。
特化模板顯示特化
在有些時候,一般性的模板定義對於某種類型來説並不適用。例如,假設我們有函數模板max()
的定義:
// 通用的模板定義 template<class T> T max(T t1, T t2) { return (t1 > t2 ? t1 : t2); }
如果函數模板用const char*型的模板實參實例化,並且我們還想讓每個實參都被解釋為
C 風格的字符串,而不是字符的指針,則通用模板定義給出正確的語義就不正確了。為了獲
得正確的語義,我們必須為函數模板實例化提供特化的定義。
在模板顯示特化定義(explicit specialization definition) 中,先是關鍵字template 和一對
尖括號(<>, 一個小於號和一個大於號),然後是函數模板特化的定義。該定義指出了模板
名、被用來特化模板的模板實參,以及函數參數表和函數體。在下面的例子中,為max(constchar*, const char*)定義了一個顯示特化:
#include <cstring> // const char* 顯示特化: // 覆蓋了來自通用模板定義的實例 typedef const char* PCC; template<> PCC max<PCC>(PCC s1, PCC s2) { return (strcmp(s1, s2) > 0 ? s1 : s2 ); }
由於有了這個顯示特化,當在程序中調用函數max(const char*,const char*)時,模板不會
用類型const char*來實例化。對所有用兩個const char*型實參進行調用的max(), 都會調用這
個特化的定義。而對於其他的調用,根據通用模板定義實例化,一個實例然後再調用它。