【问题标题】:Error: Redefinition of Class (C++)错误:重新定义类 (C++)
【发布时间】:2015-11-25 00:22:42
【问题描述】:

我正在尝试找出为什么会出现以下错误:

错误:重新定义“TimeDuration”

// TimeDuration.cpp

#define HOUR 3600
#define MIN 60

#include <iostream>
#include <string>
#include "TimeDuration.h"

using namespace std;

TimeDuration::TimeDuration() {
    seconds = 0;
}

void TimeDuration::setDuration(const int sec) {
    seconds = sec;
}

void TimeDuration::display() {
    // Some code to display the time
}

错误显示在我的头文件中。

// TimeDuration.h

class TimeDuration {
    private:
        int seconds;
    public:
        TimeDuration();                     
        void setDuration(const int sec);    
        void display();                     
};

【问题讨论】:

  • 你有头后卫吗?如果可以,请发布确切的编译器错误输出
  • ./TimeDuration.h:5:7: 错误:重新定义 'TimeDuration' 类 TimeDuration {
  • ./TimeDuration.h:5:7: 注意:之前的定义在这里 class TimeDuration {
  • @raychul,澄清一下,这是您完整的 TimeDuration.h 文件吗?如果是这样,您需要添加标题栏。
  • 好吧,我对头球后卫不是很熟悉,但我会查一下。谢谢!

标签: c++ class redefinition


【解决方案1】:

该错误可能是因为您在 TimeDuration.h 中没有标头保护

标头保护的标准方法是在文件开头写入:

#ifndef TIME_DURATION_H
#define TIME_DURATION_H

在文件末尾:

#endif

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多