zoukankan      html  css  js  c++  java
  • 自考新教材-p222

    源程序:

    //封闭类的构造函数
    #include<iostream>
    #include<string>
    using namespace std;

    class myDate
    {
    public:
    myDate();
    myDate(int);
    myDate(int, int);
    myDate(int, int, int);
    myDate(const myDate &d);
    ~myDate();
    void setDate(int, int, int);
    void setDate(myDate);
    myDate getDate();
    void setYear(int);
    int getMonth();
    void printDate()const;
    private:
    int year, month, day;
    };

    myDate::myDate()
    {
    year = 1970;
    month = 1;
    day = 1;
    cout << "myDate默认构造函数" << endl;
    }

    myDate::myDate(int y)
    {
    year = y;
    month = 1;
    day = 1;
    cout << "myDate带1个构造函数" << endl;
    }

    myDate::myDate(int y, int m)
    {
    year = y;
    month = m;
    day = 1;
    cout << "myDate带2个构造函数" << endl;
    }

    myDate::myDate(int y, int m, int d)
    {
    year = y;
    month = m;
    day = d;
    cout << "myDate带3个构造函数" << endl;
    }

    myDate::myDate(const myDate &d)
    {
    year = d.year;
    month = d.month;
    day = d.day;
    cout << "myDate_COPY构造函数" << endl;
    }

    myDate::~myDate()
    {
    cout << "myDate析构函数" << endl;
    }

    void myDate::setDate(int y, int m, int d)
    {
    year = y;
    month = m;
    day = d;
    return;
    }

    void myDate::setDate(myDate oneD)
    {
    year = oneD.year;
    month = oneD.month;
    day = oneD.day;
    return;
    }

    myDate myDate::getDate()
    {
    myDate d;
    d.year = year;
    d.month = month;
    d.day = day;
    return d;
    }

    void myDate::setYear(int y)
    {
    year = y;
    return;
    }

    int myDate::getMonth()
    {
    return month;
    }

    void myDate::printDate()const
    {
    cout << year << "/" << month << "/" << day;
    return;
    }

    class CStudent
    {
    public:
    CStudent();
    CStudent(string, myDate);
    ~CStudent();
    void setStudent(string, myDate);
    void setName(string);
    string getName();
    void setBirthday(myDate);
    myDate getBirthday();
    void printInfo()const;
    private:
    string name;
    myDate birthday;
    };

    CStudent::CStudent() :name("Noname"), birthday(myDate())
    {
    cout << "CStudent默认构造函数" << endl;
    }

    CStudent::CStudent(string str, myDate d) : name(str), birthday(d)
    {
    cout << "CStudent有参构造函数" << endl;
    }
    CStudent::~CStudent()
    {
    cout << "CStudent析构函数" << endl;
    }

    void CStudent::setStudent(string s, myDate d)
    {
    name = s;
    birthday.setDate(d);
    return;
    }

    void CStudent::setName(string n)
    {
    name = n;
    return;
    }

    string CStudent::getName()
    {
    return name;
    }

    void CStudent::setBirthday(myDate d)
    {
    birthday.setDate(d);
    return;
    }

    myDate CStudent::getBirthday()
    {
    return birthday;
    }

    void CStudent::printInfo()const
    {
    cout << "姓名:" << name << " 生日:";
    birthday.printDate();
    cout << endl;
    }

    class CUndergraduateStudent :public CStudent
    {
    private:
    string department;
    public:
    CUndergraduateStudent();
    CUndergraduateStudent(string, myDate);
    ~CUndergraduateStudent();
    void setDep(string);
    void printInfo()const;
    };

    CUndergraduateStudent::CUndergraduateStudent()
    {
    cout << "CUndergraduateStudent默认构造函数" << endl;
    }

    CUndergraduateStudent::CUndergraduateStudent(string str, myDate d) :CStudent(str, d)
    {
    cout << "CUndergraduateStudent有参构造函数" << endl;
    }
    CUndergraduateStudent::~CUndergraduateStudent()
    {
    cout << "CUndergraduateStudent析构函数" << endl;
    }

    void CUndergraduateStudent::setDep(string dep)
    {
    department = dep;
    }

    void CUndergraduateStudent::printInfo()const
    {
    CStudent::printInfo();
    cout << "院系: " << department << endl << endl;
    }

    int main()
    {
    CUndergraduateStudent s2("小张", myDate());
    system("pause");
    return 0;
    }

    运行结果:

    真实输出结果:

    myDate默认构造函数

    myDate_COPY构造函数

    myDate_COPY构造函数

    CStudent有参数构造函数

    myDate析构函数

    CUndergraduateStudent有参数构造函数

    myDate析构函数

    CUndergraduateStudent析构函数

    CStudent析构函数

    myDate析构函数

  • 相关阅读:
    2005年春晚冯巩和朱军那个以《艺术人生》为蓝本的小品,冯巩念的诗
    《十一种孤独》札记
    《OpenCV3编程入门》 札记
    JavaScript对浏览器的URL进行编码、解码
    Jquery对Cookie的操作
    asp.net对cookie的操作
    asp.net时间 日期(DateTime) 的格式处理
    asp.net的JSON数据进行序列化和反序列化
    jQuery自动分页打印表格(HTMLtable),可以强制换页
    asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12260368.html
Copyright © 2011-2022 走看看