【问题标题】:Class definition in a header c++头文件c ++中的类定义
【发布时间】:2013-05-23 12:25:44
【问题描述】:

我有这个代码:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    但是请注意,在这种情况下您不需要显式提供析构函数:编译器会为您隐式生成一个析构函数。直接省略即可。

    【讨论】:

      【解决方案2】:

      您缺少析构函数的实现:

      ~ElapsedTime() { ..... }
      

      如果析构函数没有做任何事情,并且不是virtual,您可以改为删除声明。

      【讨论】:

        猜你喜欢
        • 2012-04-03
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        • 2015-06-05
        • 2018-04-24
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        相关资源
        最近更新 更多