变量的多重定义

时间:2016-08-16 11:19:23

标签: c++

这是我的代码:

的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的守卫,因此如何定义多次呢?

1 个答案:

答案 0 :(得分:6)

它归结为foo声明 foo.h类末尾缺少的分号。

这让编译器感到困惑(它似乎试图将你的构造函数定义解析为类型为foo的对象的名称)。

C ++ ain#Java你知道!