如果我没记错的话,C-Style 转换只不过是一组有序的转换static_cast, dynamic_cast, reinterpret_cast, static_cast...
,请考虑:
enum NUMBERS
{
NUMBER_ONE,
NUMBER_TWO
};
void Do( NUMBERS a )
{
}
int _tmain(int argc, _TCHAR* argv[])
{
unsigned int a = 1;
Do( a ); //C2664
return 0;
}
C风格的转换会做
Do( (NUMBERS)a );
我想知道的是,正确的非 C 样式转换是什么,为什么?