3

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

我有以下内容:

数学.h

namespace Math {

   double Euclidean();

}

数学.cpp

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

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

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

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

我试图阅读以下内容:在这里,但似乎这使用了一个类,我想在不使用类的情况下做到这一点。

4

1 回答 1

4

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

“math.h”也是一个 C 标准头文件。也许这就是编译器所包含的。

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

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

于 2013-03-18T18:13:45.047 回答