zoukankan      html  css  js  c++  java
  • 自考新教材--p103(复制的构造函数)

    源程序:

    #include <iostream>

    #include <string>

    using namespace std;

    class myDate

    {

    private:

    int year, month, day;

    public:

    myDate();

    void setDate(int y,int m,int d)

    {

    year = y;

    month = m;

    day = d;

    }

    void setDate(myDate dd)

    {

    year = dd.year;

    month = dd.month;

    day = dd.day;

    }

    myDate(int, int, int);

    void printDate() const;

    };

    myDate::myDate() :year(1990), month(9), day(19) {}

    myDate::myDate(int y, int m, int d)

    {

    year = y;

    month = m;

    day = d;

    }

    void myDate::printDate() const

    {

    cout << "year:" << year << "month:" << month << "day:" << day << endl;

    }

    class Student

    {

    public:

    Student();

    Student(string);

    void setStudent(string,myDate);

    void setStudent(string);

    void setName(string);

    string getName();

    void setBirthday(myDate);

    myDate getBirthday();

    void printStudent() const;

    Student(const Student &);  //声明复制的构造函数

    private:

    string name;

    myDate birthday;

    };

    Student::Student() :name("Noname"), birthday(myDate()) {}

    Student::Student(string n) : name(n), birthday(myDate()) {}

    void Student::setStudent(string s, myDate d)

    {

    name = s;

    birthday.setDate(d);

    return;

    }

    void Student::setStudent(string s)

    {

    name = s;

    myDate d;

    birthday.setDate(d);

    return;

    }

    void Student::setName(string n)

    {

    name = n;

    return;

    }

    string Student::getName()

    {

    return name;

    }

    void Student::setBirthday(myDate d)

    {

    birthday.setDate(d);

    return;

    }

    myDate Student::getBirthday()

    {

    return birthday;

    }

    void Student::printStudent() const

    {

    cout << "姓名:" << name << " 生日:";

    birthday.printDate();

    cout << endl;

    }

    Student::Student(const Student &s)   //定义复制的构造函数

    {

    name = s.name;

    birthday = s.birthday;

    }

    /*

    int main()

    {

    myDate birthday;

    Student stud;

    Student ss[2];

    int y, m, d, i;

    string name_;

    stud.printStudent();

    for (i = 0; i < 2; i++)

    ss[i].printStudent();

    for (i = 0; i < 2; i++)

    {

    cout << "请输入学生的姓名和生日,生日以"年 月 日"的次序输入:";

    cin >> name_ >> y >> m >> d;

    ss[i].setStudent(name_, myDate(y, m, d));

    }

    for (i = 0; i < 2; i++)

    ss[i].printStudent();

    system("pause");

    return 1;

    }

    int main()

    {

    Student stud;

    stud.printStudent();

    stud.setName("chen");

    stud.printStudent();

    Student *spointer[2] = {new Student(),&stud};//使用构造函数生成对象指针数组

    Student sy[2] = {Student(),stud};

    for (int i = 0; i < 2; i++)

    spointer[i]->printStudent();

    for (int i = 0; i < 2; i++)

    sy[i].printStudent();

    stud.setName("wang");

    for (int i = 0; i < 2; i++)

    spointer[i]->printStudent();

    spointer[0]->setName("liang");

    spointer[1]->setName("liu");

    for (int i = 0; i < 2; i++)

    spointer[i]->printStudent();

    stud.printStudent();

    for (int i = 0; i < 2; i++)

    sy[i].printStudent();

    system("pause");

    return 1;

    }

    */

    int main()

    {

    Student stud;

    Student ss[2] = {stud,Student()};

    stud.printStudent();

    stud.setName("111111");

    ss[0] = Student(stud);

    ss[1] = Student();

    stud.printStudent();

    ss[0].printStudent();

    ss[1].printStudent();

    system("pause");

    return 1;

    }

    运行结果:

  • 相关阅读:
    Zabbix5 Frame 嵌套
    Zabbix5 对接 SAML 协议 SSO
    CentOS7 安装 Nexus
    CentOS7 安装 SonarQube
    GitLab 后台修改用户密码
    GitLab 查看版本号
    GitLab Admin Area 500 Error
    Linux 安装 PostgreSQL
    Liger ui grid 参数
    vue.js 是一个怪东西
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12022046.html
Copyright © 2011-2022 走看看