2016-08-25 6 views
2

Как установить значение по умолчанию для наконечника типа enum, я попытался установить его на 0 или 1 или ничего, но я получаю ту же ошибку?Как установить значение переменной типа enum по умолчанию?

enum tip { 
pop, 
rap, 
rock 
}; 

class Pesna{ 
private: 
char *ime; 
int vremetraenje; 
tip tip1; 

public: 
//constructor 
Pesna(char *i = "NULL", int min = 0, tip t){ 
    ime = new char[strlen(i) + 1]; 
    strcpy(ime, i); 
    vremetraenje = min; 
    tip1 = t; 
} 

}; 
+2

Что-то вроде 'Pesna (символ * г =«NULL», внутр мин = 0, т = Кончик эстрада)'? –

+0

Это работает, спасибо, я думал, что должен использовать цифры. –

+3

_ «Я думал, что должен использовать числа» _ Вся цель перечислений - не использовать числа (напрямую). –

ответ

4

Вы должны установить один из enum значений, например:

Pesna(char *i = "NULL", int min = 0, tip t = pop) 
             // ^^^^^ 

Другого techique является использование Default значения объявленного в enum самих и использовать этот. Это делает его легче, если вы передумаете, что по умолчанию должно быть:

enum tip { 
    pop, 
    rap, 
    rock, 
    Default = rap, // Take care not to use default, that's a keyword 
}; 

Pesna(char *i = "NULL", int min = 0, tip t = Default) 
             // ^^^^^^^^^ 
Смежные вопросы