내가 열거 달 변수 중 하나를 사용하여 Date 객체를 초기화하기 위해 노력하고있어 정의되어 있지 않습니다 만, 컴파일러는식별자 "월은"
식별자 "월은"정의되지 않은 오류를주고있다
문제가 무엇인지 아는 사람이 있습니까? 당신이 Month m;
를 이동하기 전에
#include<iostream>
#include<string>
using namespace std;
class Year {
static const int max = 1800;
static const int min = 2200;
public:
class Invalid {} ;
Year(int x) : y(x){ if (x < min || x >= max) throw Invalid(); }
int year() { return y; }
private:
int y;
};
class Date {
private:
Year y;
Month m; // ERROR HERE
int d;
public:
Date(Month m, int d, Year y) // ERROR HERE AT Mont m
:m(m), d(d), y(y) {}
void add_day(int n);
int month() {return m; }
int day() { return d; }
Year year() { return y; }
enum Month { jan =1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec };
};
Date today(Date::sep, 24, Year(1989));
void main() {
cout << today.day() << endl << today.month() << endl << today.year() << endl;
}
u를 선언하기 전에'Month' enum을 사용하십시오. – Rakib
달 선언은 어디에 있습니까? 나는 전에 사용하지 않고 그것을 볼 수 있습니다. – Jepessen
@Rakibul 고마워, 어떤 이유로 든 수업에서 물건을 넣는 순서가 중요하지 않다고 생각 했어. – user3677061