运算符重载,看看这个程序哪里错了?
-------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);
请教这个是什么问题?