如何设置枚举类型提示的默认值,我尝试将其设置为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;
}

};

最佳答案

您必须将其设置为enum值之一,例如:

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

另一种技术是使用在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)
                                        // ^^^^^^^^^

关于c++ - 如何设置枚举类型变量的默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39146877/

10-11 06:22