【问题标题】:Redefinition error when trying to move class to a separate file尝试将类移动到单独的文件时出现重新定义错误
【发布时间】:2022-11-13 07:33:41
【问题描述】:

我正在尝试在 C++ 中实现一个类,但我不断收到错误消息。 我的 .cpp 看起来像:

#include "medianfinderheader.h"
    MedianFinder::MedianFinder() { 
        }
        
    void MedianFinder::addNum(int num) {
        
    }
        
    double MedianFinder::findMedian() {
        double x=1.0;
        return x;
            
    }


而我的头文件看起来像:

class MedianFinder {
public:
    MedianFinder() {};
    void addNum(int num) {};
    
    double findMedian() { 
        double x=1.0;
        return x;
        };
};

但是我不断收到以下错误:

g++ -I./ -g -Og -std=c++14   main.cpp MedianFinderClass.cpp -o medianEX
MedianFinderClass.cpp:2:5: error: redefinition of 'MedianFinder::MedianFinder()'
    2 |     MedianFinder::MedianFinder() {
      |     ^~~~~~~~~~~~
In file included from MedianFinderClass.cpp:1:
medianfinderheader.h:3:5: note: 'MedianFinder::MedianFinder()' previously defined here
    3 |     MedianFinder() {};
      |     ^~~~~~~~~~~~
MedianFinderClass.cpp:5:10: error: redefinition of 'void MedianFinder::addNum(int)'
    5 |     void MedianFinder::addNum(int num) {
      |          ^~~~~~~~~~~~
In file included from MedianFinderClass.cpp:1:
medianfinderheader.h:4:10: note: 'void MedianFinder::addNum(int)' previously defined here
    4 |     void addNum(int num) {};
      |          ^~~~~~
MedianFinderClass.cpp:9:12: error: redefinition of 'double MedianFinder::findMedian()'
    9 |     double MedianFinder::findMedian() {
      |            ^~~~~~~~~~~~
In file included from MedianFinderClass.cpp:1:
medianfinderheader.h:6:12: note: 'double MedianFinder::findMedian()' previously defined here
    6 |     double findMedian() {

我不知道为什么在我实施这样的课程之前会发生这种情况,然后才能得到任何帮助。 我以完全相同的方式在 C++ 中实现了类,我真的很沮丧,任何帮助都将不胜感激。

【问题讨论】:

    标签: c++ class


    【解决方案1】:

    这条线

     void addNum(int num) {};
    

    使用空主体创建 addNum 的实现,您需要

     void addNum(int num);
    

    该类中的其他功能相同

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多