#pragma once class DrawingContext; class AbstractPainter { public: virtual ~AbstractPainter() = default; virtual void paint(DrawingContext* context) = 0; };