2014-03-26 96 views
1

我開始用C++編程和IM得到一個錯誤,我不能化解或理解錯誤C2600:這是什麼意思?

錯誤C2600:「kingMobile :: KingChatFilter :: KingChatFilter」:無法定義一個編譯器生成的特殊成員函數(必須聲明類第一)

這裏是代碼:

#include "buraco/game/board/model/KingChatFilter.h" 
#include "buraco\game/board/model\GamePlayController.h" 
#include "boost/lexical_cast.hpp" 
#include "s3e.h" 
#include "buraco\Player.h" 
namespace kingMobile { 

    KingChatFilter::KingChatFilter() { 
     //this->gamePlayController = gamePlayController; 

    } 

    string KingChatFilter::filter(string msg){ 

     if(msg == "anus"){ 
      return "amigao"; 
     } 
     return msg; 
    } 
} 

這裏我有我的.h文件

#include "buraco\game/board/model\CardGroup.h" 
#include "boost/function.hpp" 
#include "oxygine-framework.h" 

namespace kingMobile { 

    class KingChatFilter : public boost::enable_shared_from_this<KingChatFilter> { 
     public: 

      string filter(string msg); 

     private: 

    }; 

    typedef boost::shared_ptr<KingChatFilter> spKingChatFilter; 
} 
+6

你沒有聲明構造函數。 – chris

+0

(在KingChatFilter.h中的類定義中) –

+0

有我的KingChatFilter.h ...我沒有聲明那裏嗎? – user3120770

回答

5

錯誤mesage意味着此構造(特殊成員函數)

KingChatFilter() 

在第一必須在類定義進行聲明。例如,

class KingChatFilter 
{ 
public: 
    KingChatFilter(); 
//... 
}; 

只有在那之後,您纔可以在類定義之外定義它。

您不能重新定義包含默認構造函數的編譯器構造函數隱式聲明的內容。

其實我反覆的編譯器錯誤消息::)

/您/不能定義一個編譯器生成的特殊成員函數(必須 在班裏第一個聲明)

2

即使您已經在代碼中定義了構造函數的實現,仍然需要在該類的定義中聲明該函數。 在這種情況下,您需要添加KingChatFilter();在你班級的公共部分(在.h中)