钱能C++书中重载成员函数编译出错,请教一下。
#include<iostream>#include<iomanip>
using namespace std;
class Date
{
int y,m,d;
public:
void set(int year,int month,int day);
void set(string &s);
bool isleapyear();
void print();
};
//
void Date::set(int year,int month,int day)
{
y=year;
m=month;
d=day;
}
//
void Date::set(string &s)
{
y=atoi(s.substr(0,4).c_str());
m=atoi(s.substr(5,2).c_str());
d=atoi(s.substr(8,2).c_str());
}
//
void Date::print()
{
cout<<setfill('0');
cout<<setw(4)<<y<<'-'<<setw(2)<<m<<'-'<<setw(2)<<d<<'\n';
cout<<setfill(' ');
}
//
bool Date::isleapyear()
{
return(y%4==0 && y%100!=0) || (y%400==0);
}
//
void main()
{
Date d,e;
d.set(2008,12,16);
e.set("2008-12-08"); //line 46
e.print();
if(d.isleapyear())
d.print();
}
编译报错 line 46:error C2275: 'string' : illegal use of this type as an expression