Typ wyliczeniowy

0

Czesc! Mam nastepujacy kawalek kodu, ktory sie nie kompiluje, a moje pytanie dotyczy typu wyliczeniowego (ale najpierw kod):

class MyClass
{
	typedef enum Type { DOWN, UP } RootType; 
	RootType rootType;
	
public:
	MyClass (RootType r = DOWN); 
	RootType getRootType() const;
	void setRootType (RootType t);
};

To jest czesc pliky MyClass.h, a w pliku MyClass.cpp wysypuje sie w linijce:
RootType MyClass::getRootType() const
z komunikatem, ze RootType nie jest typem.

Oczywiscie mozna funckje zamienic na taka:
int getRootType() const;
bo typ wyliczeniowy to po prostu int, ale chcialbym, zeby to byl RootType - wtedy jest czytelniej.

Kto wie jak to zrobic?
Dzieki z gory za odpowiedzi.

0

Głowy nie dam, ale może ten typ po prostu jest tutaj uznawany za prywatny i schowany wewnatrz klasy i poza klasą jest niewidoczny? Możesz wyciągnąć deklarację tego enuma poza klase.

0

powinno być (poza tym typ ten powinien być publiczny):

MyClass::RootType MyClass::getRootType() const
{
      return cos_tam;
}

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