2013-03-18 76 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