#pragma once // IComponent.h #include "AbstractRefCount.h" struct IComponent : public AbstractRefCount { IComponent() {} virtual void operation() = 0; IComponent* alias() { addRef(); return this; } virtual ~IComponent() {} };