void main()
{
const int Mon = 1, Tue = 2;
enum DOW{ Mon = 11, Tue = 12 };
...
A. The variable var will have to be of type enum DOW, and then defined as:
var = Mon;
B. Mon of enum DOW cannot be assigned because the compiler will give a redefinition error.
C. Since enum DOW has been declared and defined later, it will be pushed onto the stack later, but will be accessed first. Hence, the scope resolution operator is not required and var will be assigned as:
var = Mon;
D. Since Mon is of type enum DOW, var will be assigned as:
var = DOW::Mon;
E. The variable var must be of type const int, and then it can be assigned as:
var = static_cast<const int>(Mon);