带有标头gaurd的偶数的多个定义

时间:2018-09-14 07:45:42

标签: c++ c++11

我有一个头文件:

#ifndef DATA_HPP
#define DATA_HPP

#include <cstdint>

namespace f {
namespace t {
namespace e {

uint32_t a = 99;

class Test
{
public:
    Test();
    ~Test();
};

}
}
}
#endif

使用CPP文件try.cpp:

#include "try.hpp"

namespace f {
namespace t {
namespace e {

Test::Test()
{
}
Test::~Test()
{
}

}
}
}

还有主文件-main.cpp:

#include "try.hpp"

int main()
{
f::t::e::Test a;
}

但是当我编译我的代码时:

c++ --std=c++11 try.cpp main.cpp

我遇到以下错误:

(.data+0x0): multiple definition of `f::t::e::a'
try.cpp:(.data+0x0): first defined here

我已经有了头文件保护程序-那么为什么报告此错误以及如何解决该错误?

0 个答案:

没有答案