执行此操作时,出现错误:undefined reference to SE::ShockEvent<sf::Event>::ShockEvent(sf::Event&):

    template <class Type> class ShockEvent
        {
        public:
            //event_type will be the enumerator that tells what the event is
            //so we know how to process it
            explicit ShockEvent(Type& event_type);
            virtual ~ShockEvent() {};

        protected:
            virtual std::unique_ptr<ShockEvent> createEvent(Type eventType);

        private:
            ShockEvent();
        };

class ShockUserEvent : public ShockEvent<sf::Event>
    {
    public:
        ShockUserEvent();

    private:
        sf::Event m_event;
    };

ShockUserEvent::ShockUserEvent() :
    ShockEvent<sf::Event>(m_event)
    {

    }

在ShockUserEvent中,我试图定义Type,但它会不断吐出错误。感谢您提供的所有帮助。

最佳答案

您需要更改此:

explicit ShockEvent(Type& event_type);

对此:
explicit ShockEvent(Type& event_type) {}

否则,这只是一个没有实现的声明。

更深入地讲,如果要将event_type传递给此构造函数,则可能需要它,因此,您应该在{}之间使用它,或者丢弃该参数。

08-27 20:00