定义模板构造函数
Defining template constructor
我得到错误:执行此操作时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 中,我试图定义类型,但它不断吐出错误。感谢您的任何和所有帮助。
您需要更改此设置:
explicit ShockEvent(Type& event_type);
对此:
explicit ShockEvent(Type& event_type) {}
否则,它只是一个没有实现的声明。
更深层次的是,如果要将event_type
传递给此构造函数,则可能是某些东西需要它,因此您应该在{
和}
之间使用它,或者丢弃该参数。
您尚未定义构造函数的主体。
相关文章:
- 具有enable_if外部类原型的模板类构造函数定义
- 构造函数定义中类声明中的模板值
- C++中的继承和构造函数定义
- 如何使用模板化构造函数定义演绎指南?
- 构造函数定义C
- 不正确的成员构造函数定义
- 具有虚拟多重继承的构造函数定义
- C++谷歌测试在哪里放置测试夹具构造函数定义
- 模板类定义中的模板构造函数定义
- C++下面给出的代码中的构造函数定义差异
- 带继承的构造函数定义
- 无法访问构造函数定义之外的变量
- 调用构造函数定义中的函数后收到Segmentation Fault 11错误
- 将具有默认值的构造函数定义为组合对象的私有字段
- 防止重新定义构造函数定义的方法
- 继承构造函数-定义可移植的固定大小类型(C++)
- 在类的私有部分为复制构造函数定义原型如何防止类的复制
- 如何指定继承类的构造函数定义
- 了解默认移动构造函数定义
- 理解构造函数定义块的语法变化