I have this
template<class PayloadType>
class Event {
protected:
PayloadType payload;
public:
Event(PayloadType payload);
};
This is the definition:
template<class PayloadType>
Event<PayloadType>::Event(PayloadType payload) {
this->payload = payload;
}
And this:
class SimplePayload {
protected:
int number;
public:
SimplePayload(int number) : number(number) { }
int getNumber() { return number; };
};
template<class PayloadType>
class SimpleEvent : public Event<PayloadType> {
protected:
PayloadType payload;
public:
SimpleEvent(PayloadType payload) : Event<PayloadType>(payload) { }
};
Trying to use it:
SimplePayload simplePayload;
SimpleEvent<SimplePayload> *simpleEvent = dynamic_cast<SimpleEvent<SimplePayload>*>(new Event<SimplePayload>(simplePayload));
And I'm getting this error:
error: member initializer 'Event' does not name a non-static data member or base class
How can I properly construct the object?