```cpp
#include <iostream>
#include <cstring>
using namespace std;
class Date
{
public:
Date(int y, int m, int d);
Date(Date &con_date);
private:
int m_nYear, m_nMonth, m_nDay;
};
Date::Date(int y, int m, int d)
{
cout << "Date constructor !" << endl;
m_nYear = y;
m_nMonth = m;
m_nDay = d;
}
Date::Date(Date &con_date)
{
m_nDay = con_date.m_nDay;
m_nMonth=con_date.m_nMonth;
m_nDay=con_date.m_nYear;
}
class Student
{
public:
static int s_nTotalNum;
Student(char *con_name, int con_id, Date &con_birthday);
~Student();
private:
char m_gName[20];
int m_nID;
Date m_iBirthday;
};
Student::Student(char* con_name, int con_id, Date &con_birthday):m_iBirthday(con_birthday)
{
int namelen = strlen(con_name)+1;
strcpy_s(m_gName, namelen ,con_name);
m_nID = con_id;
s_nTotalNum++;
}
Student::~Student()
{
s_nTotalNum--;
cout << "destructor, totalnum = " << s_nTotalNum << endl;
if (s_nTotalNum == 0)
system("pause");
}
int Student::s_nTotalNum = 0;
int main()
{
Date tombirthday(1998,5,20);
Student std_tom("tom",1,tombirthday);
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013161644237.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE3NTEwNg==,size_16,color_FFFFFF,t_70#pic_center)