MyClock.h
#ifndef MY_CLOCK_H
#define MY_CLOCK_H
#include <time.h>
class MyClock
{
private:
long m_lBegin;
long m_lEnd;
double m_dTime;
static double sm_dTotalTime;//將sm_lTotalTime化爲秒單位
static long sm_lTotalTime;//用於記錄時鐘次數1次/ms
public:
MyClock();
void begin();
void end();
double GetHowLong();//得到每次的運行時間
static double GetTotalTime();//得到總的運行時間
};
#endif
MyClock.cpp
#include "myclock.h"
MyClock::MyClock()
{
m_lBegin = m_lEnd = 0;
}
void MyClock::begin()
{
m_lBegin = clock();
}
void MyClock::end()
{
m_lEnd = clock();
m_dTime = double(m_lEnd - m_lBegin)/CLOCKS_PER_SEC;
sm_lTotalTime = sm_lTotalTime + m_lEnd - m_lBegin;
}
double MyClock::GetHowLong()
{
return m_dTime;
}
//前面不能加static,如果加了就會出現錯誤“static' should not be used on member functions defined at file scope”
double MyClock::GetTotalTime()
{
return double(sm_lTotalTime)/CLOCKS_PER_SEC;
}
long MyClock::sm_lTotalTime = 0;
double MyClock::sm_dTotalTime = 0;
test.cpp
#include "myclock.h"
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int main()
{
for (int j = 0; j < 2; ++j)
{
MyClock myclock;
myclock.begin();
long i = 1000000000;
while (i--)
{
;
}
myclock.end();
cout << myclock.GetHowLong() << endl;
}
cout << MyClock::GetTotalTime() << endl;
system("pause");
}