标题c ++中的类定义

时间:2013-05-23 12:25:45

标签: c++ visual-c++ linker

我有这段代码:

#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。

2 个答案:

答案 0 :(得分:7)

您忘了为析构函数提供定义:

~ElapsedTime(void) { }
//                 ^^^

但是,请注意,在这种情况下,您不需要显式提供析构函数:编译器将为您隐式生成析构函数。简单地省略它。

答案 1 :(得分:3)

您缺少析构函数的实现:

~ElapsedTime() { ..... }

如果析构函数没有执行任何操作,并且不是virtual,则可以删除声明。