2009-07-18 2 views

ответ

6

да, это очень часто, чтобы возвращать тип перечисления.

Вы хотите поместить свое перечисление вне класса, хотя функция хочет его использовать. Или укажите тип возвращаемого имени функции с именем класса (перечисление должно быть в открытой части определения класса).

class myclass 
{ 
public: 
    enum myenum{ a, b, c, d}; 

    //.... 

    myenum function(); 

    //.... 
}; 

myClass::myenum function() 
{ 
    //.... 
} 
+0

Спасибо очень много. – trikker

2

Просто убедитесь, что перечисление находится в public части вашего класса:

class myclass 
{ 
    public: 
    enum myenum{POSITIVE, ZERO, NEGATIVE}; 
    myenum function(int n) 
    { 
     if (n > 0) return POSITIVE; 
     else if (n == 0) return ZERO; 
     else return NEGATIVE; 
    } 
}; 

bool test(int n) 
{ 
    myclass C; 
    if (C.function(n) == myclass::POSITIVE) 
     return true; 
    else 
     return n == -5; 
} 
Смежные вопросы