#pragma once // only for demonstration #include class ICompareable { public: ICompareable() { std::cout << "ICompareable::ICompareable()" << std::endl; } // only for demonstration virtual ~ICompareable() { std::cout << "ICompareable::~ICompareable()" << std::endl; } // only for demonstration virtual int Compare(ICompareable* pOther) = 0; };