头文件c ++中的类定义

Posted

技术标签:

【中文标题】头文件c ++中的类定义【英文标题】:Class definition in a header 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。

【问题讨论】:

【参考方案1】:

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

~ElapsedTime(void)  
//                 ^^^

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

【讨论】:

【参考方案2】:

您缺少析构函数的实现:

~ElapsedTime()  ..... 

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

【讨论】:

以上是关于头文件c ++中的类定义的主要内容,如果未能解决你的问题,请参考以下文章