DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   multiple enums problem (http://www.daniweb.com/forums/thread70323.html)

n.aggel Feb 18th, 2007 1:27 pm
multiple enums problem
 
enum MenuOptionInitial { TEST_ONE = 1, TEST_TWO, TEST_THREE};

switch(selection)
{
case TEST_ONE:
//....
case TEST_TWO:
//....
case TEST_THREE:
//....
}

the problem is that i want to have another selection base on other options

i.e.
enum MenuSecond { TEST2_ONE = 1, TEST2_TWO, TEST2_THREE};

switch(another_selection)
{
case TEST2_ONE:
//....
case TEST2_TWO:
//....
case TEST2_THREE:
//....
}

what can i do , for this to work??

i want to have multiple enums...is it possible....???

I think that i could use namespaces to solve this problem{although i don't know how}...But i someone wanted to write to pure c {that doesn't have namespaces}, what would he do?

~s.o.s~ Feb 18th, 2007 1:46 pm
Re: multiple enums problem
 
Why not use the first ENUM set for the second selection also ?

Either that or prefix the ENUM names with an abbreviation of their purpose. Something like:
enum MenuOne { MO_FIRST = 1, MO_SECOND } ;
enum MenuTwo { MT_FIRST = 1, MT_SECOND } ;

thekashyap Feb 19th, 2007 11:51 pm
Re: multiple enums problem
 
As long as both enums are NOT used within same switch-case there are no issues at all..

If you wish to use them in same switch-case you'll get the err that case value is repeated. So all you gotta do is decide on 2 ranges for both your enums and change the first value in enum declaration appropriately.

E.g.
const ENUM_ONE_START = 0 ;
const ENUM_TWO_START = ENUM_ONE_START + 100 ;

enum MenuOptionInitial { TEST_ONE = ENUM_ONE_START, TEST_TWO, TEST_THREE};
enum MenuSecond { TEST2_ONE = ENUM_TWO_START, TEST2_TWO, TEST2_THREE};

n.aggel Feb 21st, 2007 8:16 am
Re: multiple enums problem
 
Quote:

Originally Posted by thekashyap (Post 317600)
As long as both enums are NOT used within same switch-case there are no issues at all..

If you wish to use them in same switch-case you'll get the err that case value is repeated. So all you gotta do is decide on 2 ranges for both your enums and change the first value in enum declaration appropriately.

E.g.
const ENUM_ONE_START = 0 ;
const ENUM_TWO_START = ENUM_ONE_START + 100 ;

enum MenuOptionInitial { TEST_ONE = ENUM_ONE_START, TEST_TWO, TEST_THREE};
enum MenuSecond { TEST2_ONE = ENUM_TWO_START, TEST2_TWO, TEST2_THREE};

thanks for answering


All times are GMT -4. The time now is 12:28 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC