關於型別轉換

2021-04-12 17:47:12 字數 530 閱讀 1444

關於型別轉換,這裡只列舉類之間的型別轉換

其難點有在基類和派生類之間的資料型別轉換:

在物件導向程式設計中,派生類實際上是基類的例項,但加上了一些額外資訊.在基類上所有的函式和字段也都在派生類上定義了,所以派生類可以隱式轉換為基類,看下面的例子

equals eq1 = new equalss(); //基類和派生類之間的資料轉換

equals eq2 = new equals();

equalss eqs1 = (equalss)eq1;

equalss eqs2 = (equalss)eq2;//無法將equals型別的物件強制轉換為equalss型別

其中equalss派生自equals,基類引用實際上可以引用乙個派生類例項,所以基類的物件可能是要轉化的派生類的乙個例項,如  equalss eqs1 = (equalss)eq1;這樣的轉換就會成功,派生的引用被設定為引用這個物件.但如果該物件不是派生類的例項或者派生自這個類的其他類的例項,轉換就會失敗,丟擲乙個異常,如:::equalss eqs2 = (equalss)eq2 

關於型別轉換

一 號 在不同的情況下作用是不同的 1.字串 字串 字串 2.字串 數字 字串 3.數字 數字 數字 4.作為正號時,可以將字串轉化成數字 eg typeof 1 2 型別是number 結果是3 二 號 無論什麼情況下都是數字相減,進行隱式轉化成數字 三 與 的區別 1.可以將字串轉化成數字 2....

關於格式型別轉換

c 中提供 4種顯式型別轉換。今天實驗了其中的 static cast const cast 與 reinterpret cast。static cast 轉換用於比較安全的轉換或者意義清晰的轉換。同時可以用於顯式地說明編譯器自動的隱式型別轉換。static cast.cpp includeusin...

關於強制型別轉換

var dump 0 null false var dump 0 0 true var dump 0 false var dump 0 false true var dump 0 null true var dump 0 0 true var dump 0 true var dump 0 false...