自己的练习二之构造函数与初始化列表

来源:互联网 发布:js根据name获取标签 编辑:程序博客网 时间:2024/06/05 04:54
/*初始化列表:            1、构造函数的作用与定义2、带参构造函数与初始化列表3、动态申请的对象4、带默认值的构造函数:*/#include<iostream>using namespace std;class Date{private:int year;int month;int day;public:Date();Date(int y);Date(int y, int m);Date(int y, int m, int d);void display();void SetDate(int y, int m, int d);};Date::Date(){year = 2012;month = 12;day = 1;cout << "构造函数1" << endl;}Date::Date(int y): year(y){month = 12;day = 1;cout << "构造函数2" << endl;}Date::Date(int y, int m) : year(y), month(m){day = 1;cout << "构造函数3" << endl;}Date::Date(int y, int m, int d) :year(y), month(m), day(d){cout << "构造函数4" << endl;}void Date::display(){cout << year << ' ' << month << ' ' << day << endl;}void Date::SetDate(int y, int m, int d){year = y;month = m;day = d;}class Person{private:int age;int high;public:Person(int a = 0, int h = 0);void disp();};Person::Person(int a, int h) :age(a), high(h){}void Person::disp(){cout << "age:" << age << endl;cout << "high:" << high << endl;}int main(){ Date d1;Date d2(2013);Date d3(2013, 1);Date d4(2013, 1, 18);d1.display();d2.display();d3.display();d4.display();Person p1;Person p2(13, 160);              //带默认参数值的初始化列表Person *p3 = new Person(15, 167);//动态申请新对象p1.disp();p2.disp();p3->disp();return 0;}

0 0