我目前正在缺席一个c ++项目,似乎我忘记了一些允许我的代码正确编译的语法或方法。在尝试设置我的环境之后,我遇到了重新定义错误,当然,这并不意味着要通过。
编译时的错误如下
src/foo.cpp:4:7: error: redefinition of ‘class foo’
In file included from src/foo.cpp:2:0:
./headers/foo.h:7:7: error: previous definition of ‘class foo’
我不相信我正在我的空间重新定义foo;我知道这是使用我定义的foo.h头文件的结果。
以下是我正在编译的代码
// foo.h
#ifndef FOO_H
#define FOO_H
#include <iostream>
class foo {
public:
foo();
void test();
~foo();
};
#endif /* FOO_H */
// foo.cpp
#include <foo.h>
class foo {
public:
foo(){}
void test(){}
~foo(){}
};
foo::foo(){}
int foo::test(){
std::cout << "Derp!";
return 0;
}
foo::~foo(){}
如何设置我的标头或cpp文件以解决此问题?
答案 0 :(得分:2)
您已经在类中正确构建了方法原型,因此重新定义类以实现方法是错误的。删除重复的类,您需要做的就是在 foo.cpp 文件中定义它们:
foo::foo() { .. }
foo::~foo() { .. }
void foo::test() { .. }