Member 13622541 Ответов: 1

Как создать вектор указателей функций на статические функции определенного класса и его производных классов


Попытка создать массив или вектор, содержащий указатели функций на статические функции статической функции create базового класса и всех его производных классов.

Что я уже пробовал:

class BaseClass
{
public:
    static BaseClass* create();
}

typedef BaseClass* (*BaseClassFuncPtr)();

class ManagerClass
{
public:
    void Initialise();
    vector<BaseClassFuncPtr> vec_of_functions;
}

void ManagerClass::Initialise()
{
    vec_of_functions.push_back(&BaseClass::create())
}


//Я пробовал использовать функцию std::C++, но я не понимаю ее достаточно хорошо, чтобы использовать ее, так что не повезло с этим

1 Ответов

Рейтинг:
0

CPallini

Попробуй:

#include <iostream>
#include <vector>
using namespace std;


class BaseClass
{
public:
    static BaseClass* create();
};

BaseClass * BaseClass::create()
{
  return 0; // TODO: actually implement it
}


typedef BaseClass* (*BaseClassFuncPtr)();

class ManagerClass
{
    vector< BaseClassFuncPtr > vec_of_functions;
public:
    void Initialise();
};

void ManagerClass::Initialise()
{
    vec_of_functions.push_back(&BaseClass::create);
    cout << "Initialise called, now size of 'vec..' is " << vec_of_functions.size() << endl;
}


int main()
{
  ManagerClass mc;
  mc.Initialise();
}