2010-05-15 224 views
1

這工作:枚舉類型在C++

enum TPriority 
{ 
    EPriorityIdle = -100, 
    EPriorityLow = -20, 
    EPriorityStandard = 0, 
    EPriorityUserInput = 10, 
    EPriorityHigh = 20 
}; 

TPriority priority = EPriorityIdle; 

但是,這並不工作:

TPriority priority = -100; 

的原因嗎?

回答

10

它也能工作,但需要明確的類型

TPriority priority = (TPriority)-100; 
2

你不能一個int分配給枚舉,即使值相匹配的枚舉的值之一。

然而,在澆鑄將工作:

TPriority priority = static_cast<TPriority>(-100); 
0

有一個從枚舉類型枚舉類型本身的價值沒有類型轉換。只有其他的方式。

4

簡而言之:它違背了枚舉的目的