2016-05-14 10 views
0

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(); 
} 
+2

[Works für mich] (http://rextester.com/NTPY7051) –

+1

Welchen Compiler verwenden Sie? – user3159253

+0

yep Ich denke, ich habe einen veralteten Compiler. das wird es tun – user6333082

Antwort

0

Mein Compiler war veraltet. Alles funktioniert jetzt.