江月何年初照人… 2022-04-30 01:12 采纳率: 100%
浏览 18
已结题

按要求补充编程片段 只要符合标准 秒采纳

img

img

img


类与对象题不要用太高级句子(最好多些注释) 必须按照他的提示填写 最好附上运行结果 只要测试后没问题 秒通过!

  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-04-30 08:37
    关注
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 已采纳回答 4月30日
  • 创建了问题 4月30日