No wlasnie nie wiem, zawsze myslalem że:
enum TEST {test1,
test2};
To jest to samo co:
static const int test1=0;
static const int test2=1
ale static enum? hmm
Tutaj na przyklad ktos uzywa static enum: http://www.codeguru.com/Cpp/Cpp/cpp_mfc/article.php/c4067
Tyle ze ja jakos nie rozumiem co dalo tam to slowko static, przeciez zmienna i tak nie bedzie widoczna w innych plikach cpp, wiec nie wiem o co chodzi?
Oczywiscie, jezeli bedzie cos takiego:
class A
{
public:
enum TEST {test1,
test2};
static const int test3=0;
void foo(void);
};
To:
void A:foo(void)
{
test1; //Dozwolone
TEST(test1); //Dozwolone
test3; //Dozwolone
}
Ale wewnatrz innej klasy:
A obiekt;
A::test1; //Dozwolone
obiekt.test1; //Dozwolone
A::test3; //Dozwolone
obiekt.test3; //Dozwolone
//ale:
obiekt.TEST(test1); //Niedowzwolone
A::TEST(test1); //Niedozwolone
No chyba ze w tym przypadku static enum cos zmieni?