0
Carオブジェクトの色とノイズを印刷したいとします。私はCarクラス内でC++ 11のenumクラスを使用しようとしています。コンパイルするとエラーが発生します。Car :: ColorとCar :: Noiseはクラス、名前空間、スコープ付き列挙型ではありません。私は::演算子を使用してenumクラスにアクセスしています。しかし、エラーは続く。この問題は、Car.cppファイルにあるようです。ここに私のコードです。どんなアドバイスも大歓迎です。本当にありがとう。私は::演算子を使用していますが、enumクラスのエラーがクラス、名前空間、スコープ付き列挙型ではないというエラーが表示されます
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();
}
[私のための作品](http://rextester.com/NTPY7051) –
どのコンパイラを使用しますか? – user3159253
うん、私は古いコンパイラを持っていると思う。それはやるよ – user6333082