#include<bits/stdc++.h>
using namespace std;
class Date
{
public:
Date(int y,int m,int d);//创建日期类的构造函数
Date();//无参构造函数
void setDate(int y,int m,int d);//修改日期
void display();
private:
int year,month,day;
};
Date::Date(int y,int m,int d)
{
year=y;month=m;day=d;
}
Date::Date()
{
year=month=day=0;
}
void Date::setDate(int y,int m,int d)
{
year=y;month=m;day=d;
}
void Date::display()
{
cout<<year<<"\t"<<month<<"\t"<<day<<endl;
}
class Student//学生类
{
public:
Student(int y,int m,int d,int num,string na):birthday(y,m,d)//初始化,在构造函数一开始就要进行相应的初始化,并且自动调用日期类的构造函数
{
code=num;
name=na;
}//直接在构造函数声明是进行初始化
Student();
void setStudent(int y,int m,int d,int num,string na);
void display();
private:
int code;
string name;
Date birthday;//定义一个日期类的对象作为学生类的数据成员
};
Student::Student()
{
code=0;
name="0";//name是字符串类型的数据,要用“”括起来
}
void Student::setStudent(int y,int m,int d,int num,string na)//不带参数的构造函数初始化时,只初始化学生类自己的数据成员
{
code=num;name=na;
}
void Student::display()
{
cout<<code<<name;
birthday.display();//输出时,调用日期类输出函数,
cout<<endl;
}
int main()
{
Date d(1998,06,03);
d.display();
Student stu(1998,6,3,123456,"Lily");
stu.display();
}