命名空间错误'不是命名空间名称'

时间:2013-03-18 17:07:13

标签: c++ namespaces

我最近访问名称空间,因为我有一组函数/方法但没有数据,所以合乎逻辑的方法是将它们放在名称空间中。 (对不起,如果这个问题没有任何内容)。

我有以下内容:

MATH.H

namespace Math {

   double Euclidean();

}

Math.cpp

#include "Math.h"
double Math::Euclidean() {
  // Implementation
}

在另一个名称空间中,我需要访问“Math”命名空间:

namespace foo {

     foo();
}

Foo.cpp中

#include "Math.h"
#include "foo.h"

using namespace Math; 

foo::foo() {
  // use the math function
  Math::Euclidean();  

}

我收到错误:

Math’ is not a namespace-name

我可能错过了一些非常简单的东西,但是,我似乎无法弄明白。

我试过阅读以下内容:Here但似乎这使用了一个类,我想在不使用类的情况下完成它。

1 个答案:

答案 0 :(得分:4)

这个问题已经过时了一个小时,所以我正在推广@Bo Persson的直观评论。

  

“math.h”也是C标准头。也许这就是编译器所包含的内容。

您可能正在使用Windows,其中Math.hmath.h描述了相同的文件。

重命名您的文件,使其与标准库标题名称不同,编译器将会看到它。