直接看如下**:
#include
struct a ;}
;enum
classb;
intfoo
(int input)
intmain()
a::local_a
是強型別列舉試圖實現的功能,但是有乙個小的區別:普通列舉可以轉換為整數型別,而強型別列舉不能在沒有強制轉換的情況下實現。
因此,有沒有辦法將強型別的列舉值轉換為整數型別而無需強制轉換?如果是,怎麼辦?
強型別列舉,旨在解決多個問題,而不僅僅是您在問題中提到的範圍界定問題:
提供型別安全性,從而消除了通過整數提公升而隱式轉換為整數的情況。
指定基礎型別。
提供強大的作用域。
因此,不可能將強型別的列舉隱式轉換為整數,甚至是其基礎型別-這就是這個想法。因此,您必須使用static_cast
明確顯示轉換。
如果唯一的問題是作用域確定,並且您確實希望隱式提公升為整數,那麼最好在宣告它的結構範圍內使用不強型別的列舉。
將C 裡的列舉Enum轉換為int
將列舉型別轉換為int在c 裡非常簡單,直接 int 強轉就行了,可是這樣寫 不方便,尤其讓我這種懶癌患者難受,我喜歡用擴充套件方法的方式實現轉換 如果不理解擴充套件方法請自行補課,這裡不再介紹 比如這樣string轉int public static class extendstring 比什麼c...
C 強制型別轉換 將3 3轉換為整型輸出
在c 的表示式中,不同的資料型別會自動地轉換型別進行運算,但有的時候也需要程式設計師自己進行強制型別轉換,將某個表示式轉換成自己所需要的資料型別。強制型別轉換的一般形式為 型別名 表示式 如果進行強制型別轉換的物件是乙個變數,則該變數的括號可以省略 如果要進行強制轉換的物件是乙個包含多項的表示式,則...
Java中如何將int 型別轉換為 Long型別
long l long 3 很多同學可能會用上面的方法將int型別轉換為long型別,但事實上這樣是不可行的。因為long是包裝類,而int是值型別資料,兩者是不能這樣強轉的。long l long 3 int和long都是基本型別的資料,是可以強轉的,那麼我就可以以此作為橋梁,強轉成long後,再...