我有这段代码:
#include <time.h>
class ElapsedTime
{
time_t _startTime;
public:
ElapsedTime(void){
time(&_startTime);
}
double MiliSecond()
{
time_t endTime;
time(&endTime);
return difftime(_startTime,endTime) * 1000;
}
~ElapsedTime(void);
};
我在我的c ++代码中使用它。它编译但在链接期间生成错误,因为链接器说它无法找到elapsetime定义。
如何在H文件中完全定义类?对于这个简单的类,我不希望有.h和.cpp。
答案 0 :(得分:7)
您忘了为析构函数提供定义:
~ElapsedTime(void) { }
// ^^^
但是,请注意,在这种情况下,您不需要显式提供析构函数:编译器将为您隐式生成析构函数。简单地省略它。
答案 1 :(得分:3)
您缺少析构函数的实现:
~ElapsedTime() { ..... }
如果析构函数没有执行任何操作,并且不是virtual
,则可以删除声明。