#include<iostream>
#include<string.h>
using namespace std;
//建立一个Birthday的类
class Birthday
{
private:
int m_year;
int m_month;
int m_day;
public:
Birthday(int y,int m,int d);
void print();
~Birthday();
};
Birthday::Birthday(int y,int m,int d)
{
cout << "Birthday COnstructor!" << endl;
m_year=y;
m_month=m;
m_day=d;
}
void Birthday::print()
{
cout << m_year << " " << m_month << " " << m_day << endl;
}
Birthday::~Birthday()
{
cout << "Birthday Destruct!" << endl;
}
//建立一个Student的类,在里面调用Birthday
class Student
{
private:
Birthday m_birth;
char name[20];
const int age; //age 在这里为常量,不能被赋值。
public:
Student(char *n,int y,int m,int d);
void print();
~Student();
};
Student::Student(char *n,int y,int m,int d):m_birth(y,m,d),age(10) //构造函数的调用顺序与初始化列表无关,跟对象申明的顺序有关。调用对象的方式如前。
{
strcpy(name,n);
cout << "Student Constructor!" << endl;
}
void Student::print()
{
cout << "name " << name << endl;
cout << "age " << age << endl;
m_birth.print();
}
Student::~Student()
{
cout << "Student Destruct!" << endl;
}
int main()
{
Student s1("aa",1998,10,21);
s1.print();
return 0;
}