漫談繼承技術(四)

2021-07-24 22:48:08 字數 1268 閱讀 8819

如果沒有繼承,類只是具有一些相關行為的資料結構,這只是對過程語言的一大改進,而繼承則開闢了完全不同的新天地。通過繼承,可以在已有類的基礎上建立新類。這樣,類就成為可重用和可擴充套件的元件。博主的《漫談繼承技術》系列博文將講述各種利用繼承功能的方法。學習繼承的語法,和利用繼承的一些複製技術。本篇博文先給大家介紹一下typeid在繼承中的使用,希望對大家加深對繼承技術的理解有一定的幫助。

typeid是c++的乙個關鍵字,用它可以獲得乙個類的相關資訊。

它有兩種語法形式:

typeid(表示式); 或

typeid(型別說明符);

通過typeid得到的是乙個type_info型別的const引用。type_info是c++標準庫中的乙個類,專用於表示執行時型別資訊,它定義在typeinfo標頭檔案中。type_info類有乙個名為name的函式,用來獲得型別的名稱。

雖然typeid可以作用於任何型別的表示式,但只有它作用於多型型別的表示式時,進行的才是執行時型別識別,否則只是簡單的靜態型別資訊的獲取。咱們舉個栗子吧。

#include

using

namespacestd;

class

super

virtual

voidfun(int nvalue); };

void

super::fun(int

nvalue)

//sub

類繼承super

類class

sub: public

super

virtual

voidfun(int dvalue) override; };

void

sub::fun(int

dvalue)

int main(int

argc,char**argv)

程式執行結果

psp是指標,指標本身不具有多型型別,是什麼型別的指標就輸出什麼型別的資訊。而*psp得到的是psp指標所指向物件的具體型別(具有多型型別),輸出的是所指向物件的型別資訊,即class sub。ref引用了派生類物件,也屬於多型型別。string是c++內建型別,其實string是std::basic_string模板類的例項,我們上次在   一文中總結了字串的用法,如果遺忘了,那就回去再回顧一下吧。

注意:指標本身不具有多型型別,指標所指向的物件具有多型型別。

Nginx 變數漫談(四)

在設定了 取處理程式 的情況下,nginx 變數也可以選擇將其值容器用作快取,這樣在多次讀取變數的時候,就只需要呼叫 取處理程式 計算一次。我們下面就來看乙個這樣的例子 map args foo server 這裡首次用到了標準 ngx map 模組的 map 配置指令,我們有必要在此介紹一下。ma...

模式識別技術漫談(1)

模式識別技術漫談 1 引言 在人工智慧技術 artificial intelligence 領域中,模式識別 pattern recognition 技術也許是最具有挑戰性的一門技術了,模式識別有時又被稱為分類技術,因為模式識別說到底就是對資料進行分類。說到識別,最為常用的便是模仿人的視覺的影象識別...

程式設計漫談(四) 基本功

讀 程式設計珠璣i 有感 program.program better.program faster.要從事軟體開發,首先要學會程式設計。如何程式設計呢?如何編寫更高效更優雅的程式呢?程式設計珠璣 通過簡單而熟悉的示例,揭示了許多非常有益的程式設計原理和技巧,極具啟發性。基本流程 問題定義 應用框架...