2016-08-25 116 views
2

如何設置枚舉類型提示的默認值,我試圖將其設置爲0或1,或什麼也沒有,但我得到相同的錯誤?如何設置枚舉類型變量的默認值?

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(char * i =「NULL」,int min = 0,tip t = pop)'' –

+0

它的工作原理,謝謝,我想我應該使用數字。 –

+3

_「我以爲我應該使用數字」_枚舉的整個目的不是直接使用數字。 –

回答

4

你必須將其設置爲enum值中的一個,如:

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

另一個己技巧是利用自身在enum宣佈Default值,並使用一個。如果你後來改變了主意,那麼默認應該是什麼:

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) 
             // ^^^^^^^^^