Avatar billede nbj1 Praktikant
06. oktober 2013 - 06:57 Der er 7 kommentarer og
1 løsning

return type på en abstract klasse

class plugin_bot_factory:
    public camfrog_plugin_sdk::plugin_bot_factory_t
{
public:
    camfrog_plugin_sdk::base_plugin_bot_t* create_plugin_bot(camfrog_plugin_sdk::base_plugin_mng_t* mngr,
                                                            const char* bot_name, const char* work_dir)
    {
    --->    return new bot_manager_item(mngr, bot_name, work_dir);
       
    }
};
Nogen der kan fortælle mig hvad jeg så skal gøre ?
Et objecy of abstract class type bot_manager_item is not allowed
Avatar billede segmose Nybegynder
06. oktober 2013 - 11:52 #1
abstract class ser ud til at betyde at din bot_manager_item er har en Pure virtual function og kan derfor ikke instancieres.
Avatar billede MadsHaupt Juniormester
06. oktober 2013 - 13:59 #2
Betyder en abstract class ikke at man ikke kan instancier den og at man kun kan inherit den.
Avatar billede nbj1 Praktikant
06. oktober 2013 - 16:20 #3
og det vil sige jeg skal lave en ny instans og retunere den eller hvad ?
kom med et forslag til løstning
Avatar billede segmose Nybegynder
06. oktober 2013 - 17:37 #4
Svar du kan ikke instantierer den da den har en pure virtual funktion, du skal instantierer en afledt klasse.

Hvid dette ikke giver nogen mening så vis os din version af bot_manager_item.
Avatar billede nbj1 Praktikant
06. oktober 2013 - 17:52 #5
ja sorry men her er bot_manager_item

#pragma once

#include "src/plugin_bot.h"

class bot_manager_item:
    public camfrog_plugin_sdk::base_plugin_bot_t
{
private:
    bool disable;

    std::string _message;
    std::string _message_copy;

public:
    bot_manager_item(camfrog_plugin_sdk::base_plugin_mng_t* mngr,
                    const char* name,
                    const char* work_dir);

    ~bot_manager_item();

    virtual void on_start();

    virtual void add_options(camfrog_plugin_sdk::config_file* cfg);
    virtual void cleanup();

    virtual const char* get_conf_file_name();

protected:

    void on_im_message(pkt_t &f);

    DECLARE_EVENT_MAP();

    void on_bot_info_request(pkt_t& pkt);
    void on_bot_show_help(pkt_t& pkt);
    void on_bot_info_response(pkt_t& pkt){}
    void on_bot_process_command(pkt_t& pkt){}
    void on_bot_default_event(pkt_t& pkt){}

#ifdef WIN32
    void on_get_settings(camfrog_plugin_sdk::data_exchanger_t* data);
    void on_apply_settings(camfrog_plugin_sdk::data_exchanger_t* data);
    void on_process_settings(camfrog_plugin_sdk::data_exchanger_t* data);
#endif

    void send_to_module(const char *module_id, pkt_t &f);
};
Avatar billede segmose Nybegynder
06. oktober 2013 - 23:04 #6
class bot_manager_item:
    public camfrog_plugin_sdk::base_plugin_bot_t

så en af de klasser den arver fra må have den pure virtual den klager over.
Avatar billede nbj1 Praktikant
19. januar 2014 - 07:50 #8
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester