变量的多重定义

Multiple definition of variable

本文关键字:定义 变量      更新时间:2023-10-16

我的代码:

main.cpp

#include "foo.h"
int main()
{
    return 0;
}

foo。

#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,因此它怎么能被定义不止一次?

这是因为在类声明的末尾缺少分号 foo.h中的foo

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

你知道,c++不是Java !