繁体   English   中英

类c++头文件的重新定义

[英]redefinition of class c++ header files

主要类:

#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' 未在此范围内声明 otherClass.cpp:3: 错误: 'class a' 的重新定义 otherClass.h:3: 错误: 'class a' 的先前定义

我有两个问题:首先,在我在头文件中添加一个类之前,该文件工作正常(只是保存函数)。 添加类后,出现上述两个错误。 有人可以告诉我如何安排我的头文件来修复这些错误吗? 即我想知道如何能够为包含类的文件制作头文件。

其次,我如何获得它以便在 main 函数的范围内声明该类?

这是在.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 文件

(并添加一个 :: 到方法,按照以前的答案)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM