#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstring>
using namespace std;
class Date {
private:
int m_nYear, m_nMonth, m_nDay;
public:
Date(int y, int m, int d);
Date(Date &con_date);
};
Date::Date(int y, int m, int d)
{
cout << "date constructor" << endl;
m_nDay = d;
m_nMonth = m;
m_nYear = y;
}
Date::Date(Date &con_date)
{
m_nYear = con_date.m_nYear;
m_nDay = con_date.m_nDay;
m_nYear = 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;
};
int Student::s_nTotalNum = 0;
Student::Student(char *con_name, int con_id, Date &con_birthday):m_iBirthday(con_birthday)
{
int namelen = strlen(con_name) + 1;
strcpy(m_gName, 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 main()
{
Date tombirthday(1998, 5, 20);
Student std_tom("Tom", 1, tombirthday);
cout << "tom,the totalnum=" << std_tom.s_nTotalNum << endl;
Date paulbirthady(1998, 4, 12);
Student std_paul("Paul",2,tombirthday);
cout << "paul,the totalnum" << std_paul.s_nTotalNum << endl;
return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;
class Student {
public:
Student(string con_name, int con_id);
~Student();
string get_stdname();
static int get_totalnum();
static int get_totalnum(Student&stdref);
private:
static int s_ntotalnum;
string m_strName;
int m_nId;
};
int Student::s_ntotalnum = 0;
Student::Student(string con_name, int con_id) :m_strName(con_name)
{
s_ntotalnum++;
m_nId = con_id;
}
Student::~Student()
{
s_ntotalnum--;
cout << "destructor,totalnum= " << s_ntotalnum << endl;
if (s_ntotalnum == 0)
system("pause");
}
string Student::get_stdname()
{
return m_strName;
}
int Student::get_totalnum()
{
return s_ntotalnum;
}
int Student::get_totalnum(Student &stdref)
{
cout << stdref.m_strName << "entered" << endl;
return s_ntotalnum;
}
int main()
{
cout << Student::get_totalnum()<< endl;
Student std("Tom", 20);
cout << std.get_stdname() << ' ' << std.get_totalnum(std) << endl;
return 0;
}
