Ich versuche, ein Objekt 'Bug Bug' mit 3 Parametern instanziieren und einer von ihnen ist Enumerator. Hier ist meine Klasse:Wie ein Objekt mit einem Enum-Parameter in C++ instanziieren?
class Bug
{
private:
int Id;
string description;
enum severity { low, medium, severe} s;
public:
Bug(void);
Bug(int id, string descr, severity x)
:Id(id), description(descr), s(x)
{}
void printDetails()
{
cout<< "Severity level:" <<s<< " Description: " <<description<<" ID= "
<<Id<< endl;
}
~Bug(void);
};
das ist mein main.cpp:
#include "Bug.h"
int main(){
Bug bg(3,"a", low);//Error message: identifier "low" is undefined
return 0;
}
, wenn ich diese Zeile in der Haupt
hinzugefügtenum severity { low, medium, severe};
die Fehlermeldung an das geändert:
Bug bg(3,"a", low);//Error message: no instance of constructor "Bug::bug" matches the argument list
Irgendwelche Ideen wie macht man das richtig?
Versuchen 'Bug :: low' oder' Bug :: Schwere :: low'. – apalomer
Verschieben Sie die Enum-Definition in den öffentlichen Abschnitt. main() kann es nicht sehen, weil es privet ist. –