#pragma once #include class IPrintable { public: IPrintable() { std::cout << "IPrintable called" << std::endl; } virtual ~IPrintable() { std::cout << "~IPrintable called" << std::endl; } virtual void Print() = 0; // pure virtual };