【发布时间】:2013-05-05 15:41:14
【问题描述】:
我目前正在处理一个 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 文件来解决这个问题?
【问题讨论】:
-
简单,从 foo.cpp 中删除类 foo。还将
更改为“foo.h”。虽然 的确切含义未指定,但它适用于 foo.h 显然不是的系统头文件。
标签: c++ header redefinition