运算符重载,看看这个程序哪里错了?
-------date.h----------------
程序代码:#ifndef __DATE__
#define __DATE__
class Date;
class Date
{
public:
Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) { }
int year() const { return year; }
int month() const { return month; }
int day() const { return day; }
private:
int year, month, day;
};
inline bool
operator > (const Date& d1, const Date& d2)
{
bool flag = 0;
if (d1.year() > d2.year()) flag = 1;
else if (d1.year() == d2.year()) {
if (d1.month() > d2.month()) flag = 1;
else if (d1.month() == d2.month()) {
if (d1.day() > d2.day()) flag = 1;
else;
}
else;
}
else;
return flag;
}
inline bool
operator == (const Date& d1, const Date& d2)
{
bool flag = 0;
if (d1.year() == d1.year() && d1.month() == d2.month() && d1.day() == d2.day())
flag = 1;
return flag;
}
inline bool
Date::operator < (const Date& d2)
{
bool flag = 0;
if (d1.year() < d1.year()) flag = 1;
else if (d1.year() == d2.year()) {
if (d1.month() < d2.month()) flag = 1;
else if (d1.month() == d2.month()) {
if (d1.day() < d2.day()) flag = 1;
else;
}
else;
}
else;
return flag;
}
#endif //end __Date__----------date_test.cpp-----------------
程序代码:#include <iostream>
#include "date.h"
using namespace std;
int main()
{
Date d1(2011,1,1);
return 0;
}.\date_test.cpp: In function 'int main()':
.\date_test.cpp:8:5: error: 'Date' was not declared in this scope
Date d1(2011,1,1);
请教这个是什么问题?







