Hi, im trying to make an abstract class that my components will inherit from and I want all of them to implement OnInit so I made that one pure virtual, but I only want some to inherit OnHealthUpdate.
class ComponentManager
{
public:
ComponentManager() = default;
~ComponentManager() = default;
virtual void OnInit() = 0;
virtual void OnHealthUpdate();
static void ComponentEvent_OnInit()
{
for (ULONG_PTR p_ptr : logic_components)
{
auto component = reinterpret_cast<ComponentManager*>(p_ptr);
component->OnInit();
}
}
static void ComponentsEvent_OnHealthUpdate(Event::OnHealthUpdateArgs event)
{
for (ULONG_PTR p_ptr : logic_components)
{
auto component = reinterpret_cast<ComponentManager*>(p_ptr);
component->OnHealthUpdate(event);
}
}
}
Why cant I do it like this and just simply implement the OnHealthUpdate function in the components I want without getting unresolved external symbol for OnHealthUpdate?