2013-03-18 372 views
2

我最近正在访问命名空间,因为我有一组函数/方法但没有数据,所以合理的方法是将它们粘贴到命名空间中。 (对不起,如果这个问题缺乏任何东西)。namespace error'Not a namespace-name'

我有以下几点:

MATH.H

namespace Math { 

    double Euclidean(); 

} 

Math.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

我可能失去了一些东西很简单,但是,我似乎无法推测出来。

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

+2

你在哪一行得到错误? 'double Math :: Euclidiean()','using namespace Math;'或者其他地方? – Rup 2013-03-18 17:10:38

+8

“math.h”也是一个C标头。也许这就是编译器所包含的内容。 – 2013-03-18 17:11:05

+0

你忘了从标题中粘贴一些包含吗? – 2013-03-18 17:15:21

回答

4

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

"math.h" is also a C standard header. Perhaps that's what the compiler is including.

你很可能使用的是Windows,其中Math.hmath.h描述相同的文件。

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

+0

我不使用Windows,不。但是,我刚到家,所以我会做你的建议,谢谢。 – Phorce 2013-03-18 18:15:03