错误:
F:\C++练习\f0903.cpp(14) : error C2629: unexpected 'class Date ('
F:\C++练习\f0903.cpp(14) : error C2238: unexpected token(s) preceding ';'
源程序:
#include
#include
#include
//using namespace std;
class Date
{
int year, month, day;
public:
Date(int y=2000, int m=1, int d=1);
Date(const string& s);
bool isLeapYear() const;
friend ostream& operator<<(ostream & o, const Date& d);
};
Date::Date(const string& s)
{
year = atoi(s.substr(0, 4).c_str() );
month = atoi(s.substr(5, 2).c_str() );
day = atoi(s.substr(8, 2).c_str() );
}
Date::Date(int y, int m, int d) { year = y, month = m, day = d; }
bool Date::isLeapYear()const
{
return ( year%4==0 && year%100!=0)|| year%400==0;
}
ostream& operator<<(ostream & o, const Date& d)
{
o<
int main()
{
Date c("2005-12-28");
Date d(2003, 12, 6);
Date e(2002);
Date f(2002, 12);
Date g;
cout<
}
原因:1.一个定义错误,一个少个分号
2.vc对<<支持的问题。使用gcc。 还可以屏蔽use namespace std; 改为std::。
3.#include
4.#include
解决:将绿色代码以下代码
Date(const std::string& s);
Date:: Date(const std::string& s);