请帮忙看看函数关于重载
下面这个程序还没有通过编译,有一个错误,请高手帮忙指出,另外本人对重载的这个函数void Date::set(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());
}
不明白,请解析一下,尤其是year=atoi(s.substr(0,4).c_str());这样的语句
先谢谢了!
#include<iostream>
#include<iomanip>
using namespace std;
class Date
{
private:
int year;
int month;
int day;
public:
void set(int y,int m,int d);
void set(string& s);
bool isleapyear() ;
void print() ;
};
void Date::set(int y,int m,int d)
{
year=y;month=m;day=d;
}
void Date::set(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());
}
bool Date::isleapyear()
{
return (year%4==0&&year%100!=0||year%400==0);
}
void Date::print()
{
cout<<setw(4)<<year<<'-'<<month<<'-'<<day;
}
void main()
{
Date d,e;
d.set(2000,12,6);
e.set("2005-05-05");
e.print();
if(d.isleapyear)
d.print();
}