如果类型需要模板,如何存储std :: vector

时间:2016-12-02 22:52:16

标签: c++ templates stdvector

我正在尝试将std::vector存储在一个名为InputManager的类中,用于存储侦听器。

我有一个名为Listener的超类。此类包含存储在模板中的类型的变量。

template <class obj>
class Listener 

派生类根据侦听器类型定义模板:

class onClickListener : public Listener<Button*>

如何在不定义类型的情况下存储std::vector Listeners

std::vector<Listener<obj>> InputManager::listeners = std::vector<Listener<obj>>()

class InputManager
{
public:
    template <class obj>
    InputManager(GLFWwindow* window);

    template <class obj>
    void run();
    ~InputManager();
    static InputManager* Self;
    template<class obj>
    void addListener(Listener<obj>* listener);
private:
    GLFWwindow* window;
    static std::vector<Listener<obj>> InputManager::listeners = std::vector<Listener<obj>>();
};

如果您需要更多信息,请告诉我们。

0 个答案:

没有答案