error C2629: unexpected \'class Date (\'

错误:

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<return o<}

int main()
{
Date c("2005-12-28");
Date d(2003, 12, 6);
Date e(2002);
Date f(2002, 12);
Date g;
cout<return 0;
}

原因:1.一个定义错误,一个少个分号

       2.vc对<<支持的问题。使用gcc。    还可以屏蔽use namespace std;    改为std::。

      3.#include 可以使用string类,当然可能还需要using namespace std,假如不像std::string这       么用的话

       4.#include与#include有区别

解决:将绿色代码以下代码

Date(const std::string& s);

Date:: Date(const std::string& s);

你可能感兴趣的:(点点滴滴)