头文件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 ++中的类定义的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何定义,添加头文件

c语言中的头文件

c语言怎么包含自己写的头文件?

C语言中怎样在头文件中定义一个能够在所有文件中都可以使用的全局数组变量 ?

何时将静态函数定义放在 C 的头文件中?

c语言 头文件中放函数实体 两个c文件同时引用会报错:找到一个或多个重定义的符号