首页 > 代码库 > C++面向对象作业1

C++面向对象作业1

 1 #include <iostream> 2 #include <stdlib.h> 3 using namespace std; 4 class Tdate 5 { 6 public: 7     Tdate(int mm=0,int dd=0,int yy=0); 8     ~Tdate() 9     {10         cout<<"Call Destructor.\n";11     }12     void Tdate::SetDate(int m,int d,int y);//构造函数参数设置了缺省值13     void print()14     {15         cout<<"month="<<month<<",day="<<day<<",year="<<year<<"\n";16     }17 protected:18     int month,day,year;19 };20 Tdate::Tdate(int mm,int dd,int yy)21 {22     month=mm;23     day=dd;24     year=yy;25     cout<<"Call Constructor.\n";26 }27 void Tdate::SetDate(int m,int d,int y)28 {29     if(m>0&&m<13)30         month=m;31     if(d>0&&d<32)32         day=d;33     if(y>0&&y<3000)34         year=y;35 }36 int main()37 {38     Tdate *pd1,*pd2;39     pd1=new Tdate(1,1,2000);//创建动态对象,会调用构造函数40     pd1->print();//只能用指针去访问该对象的成员41     pd2=new Tdate(12,31,2007);//创建动态对象,会调用构造函数42     if(!pd2)//如果分配堆内存不成功43     {44         cout<<"Heap error!\n";//输出错误信息45         exit(1);//终止程序运行46     }47     else//如果分配堆内存成功48         pd2->SetDate(8,8,2008);//调用函数重设日期49     pd2->print();50     delete pd1;//删除动态对象,会调用析构函数51     delete pd2;//删除动态对象,会调用析构函数52 }

 

C++面向对象作业1