我有以下代码:

#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 ++代码中使用了它。它可以编译,但是在链接期间会生成错误,因为链接器说找不到超时时间定义。

如何在H文件中完全定义类?对于这个简单的类,我不想有.h和.cpp。

最佳答案

您忘记提供析构函数的定义:

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


但是请注意,在这种情况下,您无需显式提供析构函数:编译器将为您隐式生成一个析构函数。只需忽略它。

10-06 07:53