implicit 關鍵字用於宣告隱式的使用者定義型別轉換運算子。如果可以確保轉換過程不會造成資料丟失,則可使用該關鍵字在使用者定義型別和其他型別之間進行隱式轉換。隱式轉換可以通過消除不必要的型別轉換來提高源**的可讀性。 但是,因為隱式轉換不需要程式設計師將一種型別顯式強制轉換為另一種型別,所以使用隱式轉換時必須格外小心,以免出現意外結果。 一般情況下,隱式轉換運算子應當從不引發異常並且從不丟失資訊,以便可以在程式設計師不知曉的情況下安全使用它們。 如果轉換運算子不能滿足那些條件,則應將其標記為 explicit。
舉個例子
class a
public float p
public static implicit operator a(float f)
public static implicit operator float(a a)
}
//初始化建構函式
a a = new a(100.12345f);
//把a物件賦值給f,其實這個時候float已經被過載運算了所以不會報錯
float f = a;
//把30賦值給a2物件的時候,a類已被過載了
a a2 = 30;
richtextbox1.text += "f是:" + f + "\n";
richtextbox1.text += "a2.p是:" + a2.p + "\n";
得到的結果是
f是:100.1235
a2.p是:30
總結:連續介紹了三個關鍵字operator搭配implicit和explicit,過載運算,型別轉換的過程當中都離不開static,explicit需要強制轉換而implicit隱試轉換型別。
關鍵字的用法 C 中const關鍵字用法總結
ark2000 看完了c primer的基礎篇,對const還是有點陌生,在這裡小小地總結一下吧。在變數的定義前加上const修飾符即可完成const物件的建立。const int val 5 const變數的值不能改變。val 5 error assignment of read only var...
const關鍵字用法
1 const常量 如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤 邊際效應 2 const修飾類的資料成員 class a const...
restrict關鍵字用法
概括的說,關鍵字restrict只用於限定指標 該關鍵字用於告知編譯器,所有修改該指標所指向內容的操作全部都是基於 base on 該指標的,即不存在其它進行修改操作的途徑 這樣的後果是幫助編譯器進行更好的 優化,生成更有效率的彙編 舉個簡單的例子 int foo int x,int y 很顯然函式...