重新定义C 标头文件

redefinition of class c++ header files

本文关键字:文件 定义 新定义      更新时间:2023-10-16

主类:

#include "otherClass.h"
using namespace std;
int main() {
    a cl;
    return 0;
}

标题文件:

#ifndef OTHERCLASS_H_INCLUDED_
#define OTHERCLASS_H_INCLUDED_
class a {
    int add(int a, int b);
    int subtract(int a, int b);
};
#endif

标题文件对应于

的.cpp类
#include "otherClass.h"
class a { 
    int add(int a, int b) {
        return (a + b);
    }
 
    int subtract(int a, int b) {
        return (a - b);
    }
};

错误:

text.cpp:13:错误:在此范围中未声明" cl"其他CLASS.CPP:3:错误:重新定义" A类"其他Class.h:3:错误:" A类"的先前定义

我有两个问题:首先,在我在标头文件中添加类之前,该文件正常工作(仅保留功能)。一旦添加了课,我就会得到以上两个错误。有人可以告诉我如何安排我的标题文件解决这些错误吗?IE。我想知道如何为包含类的文件制作标题文件。

第二,我如何获得它,以便在主函数的范围内声明该类?

这就是您将在.cpp文件中定义类'成员函数的方式:

#include "otherClass.h"
int a::add(int a, int b) {
  return (a + b);
}
int a::subtract(int a, int b) {
  return (a - b);
}

请注意,您已声明了成员private,因此您将无法与它们做很多事情。

删除

class a {

和最终

};

来自.cpp文件

(根据以前的答案,将::添加到方法中)