1. 程式人生 > >靜態類型&動態類型

靜態類型&動態類型

ble 傳遞 spa 分開 bulk 一個 它的 靜態類 span

何時使用:使用存在繼承關系的類型時,必須將一個變量或其他表達式的靜態類型與該表達式表示對象的動態類型區分開來

靜態類型:表達式的靜態類型在編譯時總是已知的,它是變量聲明時的類型或表達式生成的類型

動態類型:動態類型直到運行時才可知,(變量或)表達式表示的內存中的對象的類型

如果表達式既不是引用也不是指針,則它的動態類型永遠與靜態類型一致。

如當print_total調用net_price時:double ret = item.net_price(n);,我們知道item的靜態類型是Quote&,它的動態類型則依賴於item綁定的實參(即動態類型知道運行時調用print_total才知道),若我們傳遞一個Bulk_quote對象

給print_total,則item的靜態類型將與它的動態類型不一致(此時item的靜態類型是Quote&,而相應的動態類型是Bulk_quote)

靜態類型&動態類型