f0903.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // f0903.cpp
  3. // 构造函数重载
  4. //=====================================
  5. #include<iostream>
  6. #include<iomanip>
  7. using namespace std;
  8. //-------------------------------------
  9. class Date{
  10.   int year, month, day;
  11. public:
  12.   Date(int y=2000, int m=1, int d=1);     // 设置默认参数
  13.   Date(const string& s);                  // 重载
  14.   bool isLeapYear()const;
  15.   friend ostream& operator<<(ostream& o, const Date& d);
  16. };//-----------------------------------
  17. Date::Date(const string& s){
  18.   year = atoi(s.substr(0,4).c_str());
  19.   month = atoi(s.substr(5,2).c_str());
  20.   day = atoi(s.substr(8,2).c_str());
  21. }//------------------------------------
  22. Date::Date(int y, int m, int d){ year=y,month=m,day=d; }
  23. //-------------------------------------
  24. bool Date::isLeapYear()const{
  25.   return (year % 4==0 && year % 100 )|| year % 400==0;
  26. }//------------------------------------
  27. ostream& operator<<(ostream& o, const Date& d){
  28.   o<<setfill('0')<<setw(4)<<d.year<<'-'<<setw(2)<<d.month<<'-';
  29.   return o<<setw(2)<<d.day<<'n'<<setfill(' ');
  30. }//------------------------------------
  31. int main(){
  32.   Date c("2005-12-28");
  33.   Date d(2003,12,6);
  34.   Date e(2002);              // 默认两个参数
  35.   Date f(2002,12);           // 默认一个参数
  36.   Date g;                    // 默认三个参数
  37.   cout<<c<<d<<e<<f<<g;
  38. }//====================================
  39.