używanie przestrzeni nazw klasy

0

mam klasę:

class A
{
public:
enum {COS,COS2};
};

oraz jakąś metodę w innej klasie:

void B::metoda()
{
   map<string,int> a;
   a["cos"] = A::COS;
   a["cos2"] = A::COS2;
   // ...
}

teraz chodzi mi o to abym mógł tą metodę zapisać coś w ten deseń:

void B::metoda()
{
   map<string,int> a;
   using /*class, namespace czy coś innego*/ A;
   a["cos"] = COS;
   a["cos2"] = COS2;
   //...
}

w ostateczności wrzucę tego enuma do jakiejś przestrzeni nazw albo zrobię makro, ale wolałbym się dowiedzieć czy i jak da się do zrobić

0

Afaik nie da się.

Możesz zrobić wspólną bazę z tym enumem i dziedziczyć lub wsadzić to do jakiejś przestrzeni nazw jak napisałeś.

Btw co złego jest w A::COS? Plus moim zdaniem nie powinieneś traktować enumów jak intów.

0

Da się. zrób:

class B: private A { ... }

;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1