強制多態

強制多態

強制多態是編譯程序程序的一種。通過語義操作,把操作對象的類型強行加以變換,以符合函數或操作符的要求。程序設計語言中基本類型的大多數操作符,在發生不同類型的數據進行混合運算時。編譯程序一般都會進行強制多態。程序員也可以顯示地進行強制多態的操作(Casting)。

方法


要注意的是並不是任意兩個類型之間都可以進行強制多態。在不同類型之間實現強制多態,通常需要執行不同的轉換操作。強制多態的原則是:將值集較小(即佔用存儲空間較小)的類型,變換成值集包含了前者(即佔用存儲空間較大)的類型,反之,應當注意可能發生的對值的損傷(特別是在使用Casting時)。

公式


有時,強制多態與過載多態是混合出現的。例如,對於表達式1+2; 1.0+2; 1+2.0; 1.0+2.0;
中出現的多態,就會有多種解釋:
·操作符+有四種過載多態;
·操作符+只有一種:double * double -> double,要將參與運算的整數強制變換成浮點數
·操作符+有兩種過載多態:int * int -> int 和 double * double -> double,要將混合運算中的整數強制變換成浮點數。