错误C2600:这意味着什么?

时间:2014-03-26 16:39:41

标签: c++ class mobile constructor compiler-errors

我开始用c ++编程,我得到一个我无法解决或理解的错误

错误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;
}

2 个答案:

答案 0 :(得分:5)

错误消息意味着这个构造函数(特殊成员函数)

KingChatFilter() 

首先必须在类定义中声明。例如

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

只有在此之后,您才可以在类定义之外定义它。

您可能无法重新定义编译器构造函数(包括默认构造函数)隐式声明的内容。

实际上我重复了编译器::)

的错误信息
  

/您/无法定义编译器生成的特殊成员函数(必须   首先在课堂上宣布)

答案 1 :(得分:2)

即使您已在代码中定义了构造函数的实现,仍需要在类的定义中声明该函数。 在这种情况下,您需要添加KingChatFilter();在你班级的公共部分(在.h)