Bootstrap

计算机程序设计(C++)第10周编程作业数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针

/* 1定义一个带重载构造函数的日期类
题目内容:
定义一个带重载构造函数的日期类Date,数据成员有年、月、日;成员函数包括:一个带参数的构造函数Date(int,int,int),一个不带参数的构造函数,一个按“年-月-日”格式显示日期的函数,一个对数据成员赋值的函数void 
init(int,int,int)。
主函数中对类的测试要求:
1. 分别使用两个不同的重载构造函数创建两个日期类对象(必须为d1,d2,d2初始值为2100-12-12);
2. 按“年-月-日”格式分别显示两个对象的值;
3. 输入数据,用init函数为d1赋值;
2.按“年-月-日”格式显示对象d1的值;。
输入格式:
给d1赋值的数据
输出格式:
d1的默认值
d2的初始值
d1赋值后的
输入样例:
2011 4 29
输出样例:
1900-1-1
2100-12-12
2011-4-29*/
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
class Date
{
    int year;
    int month;
    int day;
public:
    Date():year(1900),month(1),day(1){};
    Date(int,int,int):year(2100),month(12),day(12){};
	void Print();
    void init(int,int,int);
};
void Date::Print(){
	cout<<year<<"-"<<month<<"-"<<day<<endl;
}
void Date::init(int year,int month,int day){
	this->year=year;
	this->month=month;
	this->day=day;
}
int main()
{
    Date *d1=new Date();
    Date *d2=new Date(2,1,3);
    int year,month,day;
    cin>>year>>month>>day;
    d1->Print();
    d2->Print();
    d1->init(year,month,day);
    d1->Print();
    delete d1,d2;
    return 0;
}
/*2动态生成Person类的对象(20分)
题目内容:
编写Person类,数据成员为姓名(20字符长度)、年龄(int)和性别(char)。
编写无参数的构造函数,其中姓名赋值为“XXX”,年龄0,性别m;
编写析构函数,在其中输出字符串“Now 
destroying the instance of 
Person”;
编写Register成员函数,为数据成员赋值;
编写showme成员函数,显示姓名、年龄和性别。

编写主函数:
用Person类创建2个指针,p1和 
p2;
用new创建两个Person对象,分别将指针赋值给p1,p2;
用showme成员函数显示p1,p2所指对象的值;
再输入一组“姓
;