这是我的代码:
的main.cpp
#include "foo.h"
int main()
{
return 0;
}
foo.h中
#ifndef FOO_H
#define FOO_H
class Foo
{
public:
Foo();
int bar;
}
#endif
Foo.cpp中
#include "foo.h"
Foo::Foo()
{
bar = 3;
}
编译这会给我以下错误:
multiple definition of 'bar'
但是我在头文件中包含了定义bar
的守卫,因此如何定义多次呢?
答案 0 :(得分:6)
它归结为foo
中声明 foo.h
类末尾缺少的分号。
这让编译器感到困惑(它似乎试图将你的构造函数定义解析为类型为foo
的对象的名称)。
C ++ ain#Java你知道!