2010-06-09 59 views
0

我之前得到一個「預期的類名,或和我不完全得到如何解決它'''或';'之前的預期類名。

這裏就是錯誤是:

class FXHost : public CPLAT::CP_Application, public CPLAT::CP_M_Listener 
{ 

該文件是FXHost.h和CPLAT ::顯然是CP_Application和CP_M_Listener所在的命名空間

我不明白爲什麼會出現這種情況,這段代碼在Metrowerks中運行正常(沒有CPLAT::),但是在XCode中需要CPLAT,因爲寫的代碼由之前的開發者。

任何人都可以解釋一下這個錯誤嗎?

更新:這裏是CP_Application類

template <class DOC_POLICY, class PRINT_POLICY, class UNDO_POLICY> 
class CP_EXPORT CP_Application : public CP_Application_Imp 
{ 
    public: 
    typedef DOC_POLICY     DocPolicyType; 
    typedef PRINT_POLICY    PrintPolicyType; 
    typedef UNDO_POLICY     UndoPolicyType; 

    CP_Application(); 
    virtual     ~CP_Application() throw(); 
+4

聽起來像一個的#include缺少一個聲明CPLAT ::類。 – 2010-06-09 14:15:01

回答

2

它看起來像編譯器還沒有看到兩個父類的類聲明的樣本。我會檢查的第一件事是你的包含指令。你確定你包括標題定義的類CP_ApplicationCP_M_Listener

+0

@acanaday - 這是它的一部分。我添加了CP_Application和CP_M_Listener,但它仍然抱怨CP_M_Listener。我查看了該頭文件,並且CP_M_Listener()構造函數受到保護。爲什麼你會有一個受保護的構造函數?這是我的問題嗎? – Elliot 2010-06-09 15:17:24

+0

@Elliot - 使保護的構造的目的是使得僅派生類(或靜態類的方法)可以調用它(即防止類直接實例化)。抽象基類或單例(通常是私有構造函數)通常就是這種情況。這本身不應該導致編譯器錯誤。你現在得到什麼錯誤? – acanaday 2010-06-09 15:30:11

+0

@acanaday - 我現在確切的錯誤是:錯誤:期望的類名之前','令牌 - – Elliot 2010-06-09 15:43:50

相關問題