Ich möchte die Farbe und das Rauschen meines Auto-Objekts drucken. Ich versuche C++ 11's Enum-Klasse innerhalb meiner Car-Klasse zu verwenden. Wenn ich kompiliere bekomme ich Fehler Car :: Color und Car :: Noise ist keine Klasse, Namespace oder Bereichsaufzählung. Ich verwende den Operator ::, um auf die Enum-Klasse zuzugreifen. Aber der Fehler bleibt bestehen. Das Problem scheint in der Car.cpp-Datei zu liegen. Hier ist mein Code. Jeder Rat wird sehr geschätzt. Vielen Dank.Ich benutze :: Operator, aber ich bekomme immer noch Fehler, dass enum Klassenfehler ist keine Klasse, Namespace, oder Bereichsauflösung
Car.h
class Car {
public:
enum class Color {red, yellow, blue};
enum class Noise {loud, soft, medium};
void setColor();
void setNoise();
void getColor();
void getNoise();
private:
Color c;
Noise n;
};
Car.cpp
#include<iostream>
#include "Car.h"
using namespace std;
void Car::setColor() {
c = Color::red;
}
void Car::setNoise() {
n = Noise::loud;
}
void Car::getColor() {
switch(c) {
case Color::red: cout << "red" << endl;
case Color::yellow: cout << "yellow" << endl;
case Color::blue: cout << "blue" << endl;
default:
cout << "error" << endl;
}
}
void Car::getNoise() {
switch(n) {
case Noise::loud: cout << "loud" << endl;
case Noise::soft: cout << "soft" << endl;
case Noise::medium: cout << "medium" << endl;
default: cout << "error" << endl;
}
}
main.cpp
#include <iostream>
#include "Car.h"
int main() {
Car car;
car.setColor();
car.setNoise();
car.getColor();
car.getNoise();
}
[Works für mich] (http://rextester.com/NTPY7051) –
Welchen Compiler verwenden Sie? – user3159253
yep Ich denke, ich habe einen veralteten Compiler. das wird es tun – user6333082