使用枚舉與命名空間有問題。帶枚舉的命名空間問題
下面是函數調用:
object->writeMessage(tmpZone->getLineOne(), tmpZone->getLine(), tmpZone->getPosition());
從編譯器的問題來自
tmpZone->getLine()
的原型函數getline()從區級(這是在洞察命名空間)是:
Line getLine();
它在insight命名空間中返回一個枚舉類型。此函數調用位於使用名稱空間洞察下的cpp文件中;線。
編譯錯誤是
C:/WindRiver/workspace/SimpleTemplate/InsightLT.cpp:在靜態成員 函數
static int insight::InsightLT::taskFunction(insight::InsightLT*)': C:/WindRiver/workspace/SimpleTemplate/InsightLT.cpp:161: error: no matching function for call to
洞察:: InsightLT ::的WriteMessage(的std :: string,線,INT) 「 C:/WindRiver/workspace/SimpleTemplate/InsightLT.cpp:82:注意: 候選人是:無效的洞察力:: InsightLT ::的WriteMessage(的std :: string, 洞察::線,INT)
我想不出爲什麼會發生這種情況。 Zone類也是在insight命名空間中定義的。任何想法傢伙?
getLine()函數的原型是什麼? –
請提供一個說明錯誤的完整小例子。 – Oswald
'getPosition()'返回一個'int',或可轉換爲'int'的東西嗎? getLineOne()'返回一個'string',或者可以轉換爲'string'的東西?你爲什麼說這個問題來自'getLine()'?我不能從編譯器錯誤 –