我有一個所謂的「例外」命名空間的問題命名空間稱爲「異常」會導致編譯問題
讓我們看看下面的例子標題:
#include <exception>
namespace exception
{
struct MyException : public std::exception
{};
}
struct AnotherException : public exception::MyException
{
AnotherException() : exception::MyException() { }
};
這頭不與下面的錯誤編譯:
namespacetest.hpp: In constructor 'AnotherException::AnotherException()': namespacetest.hpp:12:48: error: expected class-name before '(' token namespacetest.hpp:12:48: error: expected '{' before '(' token
這有兩種解決方案:
1)在第12行用「::」限定命名空間
AnotherException() : ::exception::MyException() { }
2)將命名空間重命名爲例如「例外」
是什麼原因,命名空間「異常」導致混淆?我知道有一個類std :: exception。這是否會造成麻煩?
感謝您在發佈答案的那一刻獲得+1的結果? :) – jrok
+1表示「注入」 –