我用devc++编写了下列程序用于检验类中构造函数和析构函数的运行时间
#include <cstdlib>
#include <iostream>
#include <stdio.h>
using namespace std;
class Date
{
public:
Date ();
~Date ();
void SetDate(int y,int m,int d);
int IsLeapYear()const;
void PrintDate()const;
private:
int year,month,day;
};
Date:: Date () //构造函数
{cout<<"Date object initialized.\n";}
Date:: ~ Date() //析构函数
{cout<<"Date object destroyed.\n";}
void Date:: SetDate(int y, int m, int d)
{year=y;month=m;day=d;}
int Date:: IsLeapYear() const
{
return(year%4==0&&year%100!=0)||(year%400==0);
}
void Date:: PrintDate() const
{cout<<year<<"/"<<month<<"/"<<day<<endl;}
int main(int argc, char *argv[])
{
Date d;
d.SetDate(2001,10,1);
d.PrintDate();
system("PAUSE");
return EXIT_SUCCESS;
}
但输出的结构并没有 Date object destroyed. 这一句,也就是说没执行到析构函数,为什么会这样呢? 是因为 system("PAUSE"); 的影响吗?有办法解决吗?