나는 gloox Bot을 가지고 있습니다. MUC 룸 핸들러를 만들려고하는데, gcc에서 컴파일 할 때 실수가 있습니다.나는 내 gloox 봇에 실수를했습니다.
class MucHandler : public MUCRoomHandler {
private:
Client *client;
public:
MucHandler(Client *cl){
client = cl;
}
virtual void handleMUCMessage (MUCRoom *room, const Message &msg, bool priv){
}
virtual bool handleMUCRoomCreation(MUCRoom *room)
{
}
virtual void handleMUCSubject(MUCRoom * /*room*/, const std::string& nick, const std::string& subject)
{
}
virtual void handleMUCInviteDecline(MUCRoom*, const JID& invitee, const string& reason){
}
virtual void handleMUCError(MUCRoom*, StanzaError error){
}
virtual void handleMUCInfo(MUCRoom * /*room*/, int features, const std::string& name, const DataForm* infoForm)
{
}
virtual void handleMUCItems(MUCRoom * /*room*/, const Disco::ItemList& items)
{
}
virtual void handleMUCParticipantPresence(MUCRoom * room, const MUCRoomParticipant participant,Presence presence){
}
};
class Bot {
private:
Client *client;
MUCRoom *room;
MucHandler *muc;
public:
Bot(string login, string password, string resource){
const string fullJidName = login + '/' + resource;
JID jid(fullJidName);
//mucroom
const string server = "conference.jabber.ru";
const string uName = jid.username();
const string roomJid = uName + "@" + server + "/" + uName;
JID roomJID(roomJid);
client = new Client(jid,password);
client->setPresence(Presence::Available, -1);
//mucRoom handler
muc = new MucHandler(client);
room = new MUCRoom(client, roomJID, muc, 0);
//room->registerMUCRoomHandler(muc);
//
client->connect();
}
~Bot(){
delete client;
delete room;
}
void joinRoom(){
room->join();
room->getRoomInfo();
room->getRoomItems();
}
void setRoomNick(const string& nick){
room->setNick(nick);
}
void invite(const string& inv, const string& reason)
{
JID invitee(inv);
room->invite(invitee, reason);
}
};
int main(int argv, char** argc){
Bot bot("ex[email protected]","example3","home");
}
그러나 나는이 실수로 다음과 같은 가상 함수는 'MucHandler' /usr/include/gloox/mucroomhandler.h:107 내에서 순수하기 때문에 'Muchandler' 추상 형식의 객체를 할당 할 수 없습니다
: 가상 무효 gloox :: MUCRoomHandler :: handlerMUCParticipantPresence (gloox :: MUCRoom *, gloox :: MUCRoomParticipant, const를 gloox :: 존재 &)나는 전혀 모른다주의, 해결 방법을합니다. 아무도 나를 도울 수 있습니까?
대단히 감사합니다. :) – Maria