我开始用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;
}
答案 0 :(得分:5)
错误消息意味着这个构造函数(特殊成员函数)
KingChatFilter()
首先必须在类定义中声明。例如
class KingChatFilter
{
public:
KingChatFilter();
//...
};
只有在此之后,您才可以在类定义之外定义它。
您可能无法重新定义编译器构造函数(包括默认构造函数)隐式声明的内容。
实际上我重复了编译器::)
的错误信息/您/无法定义编译器生成的特殊成员函数(必须 首先在课堂上宣布)
答案 1 :(得分:2)
即使您已在代码中定义了构造函数的实现,仍需要在类的定义中声明该函数。 在这种情况下,您需要添加KingChatFilter();在你班级的公共部分(在.h)