


类与对象题不要用太高级句子(最好多些注释) 必须按照他的提示填写 最好附上运行结果 只要测试后没问题 秒通过!
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
class MyDate{
public:
MyDate(int y, int m, int d){
year = y;
month = m;
day = d;
}
MyDate(const MyDate& b){
year = b.year;
month = b.month;
day = b.day;
}
void set(int y, int m, int d){
year = y;
month = m;
day = d;
}
void show(){
printf("%d,%d,%d\n", year, month, day);
}
private:
int year;
int month;
int day;
};
class Person{
public:
char *name;
MyDate *birthday;
Person(char* na, MyDate bir);
Person(const Person& p);
~Person();
void show(){
printf("%s ",name);
birthday->show();
}
};
Person::Person(char* na, MyDate bir){
name = new char[10];
strcpy(name, na);
birthday = new MyDate(bir);
printf("构造:%s ",name);
birthday->show();
}
Person::Person(const Person& p){
name = new char[10];
strcpy(name, p.name);
birthday = new MyDate(*p.birthday);
printf("构造:%s ",name);
birthday->show();
}
Person::~Person(){
printf("析构:%s ",name);
birthday->show();
delete name;
delete birthday;
}
int main(){
char name[10];
int y,m,d;
scanf("%s",name);
scanf("%d,%d,%d",&y,&m,&d);
MyDate t(y,m,d);
Person p1(name,t);
Person p2(p1);
p2.birthday->set(1987,2,27);
p1.show();
p2.show();
p2.birthday = new MyDate(2020,1,2);
p1.show();
p2.show();
return 0;
}