rface class. However, sometimes it is convenient to provide other
methods in the interface class which implement composite operations by
calling the abstract methods. This is an impure interface. For example:</p>

<pre class="cpp">
class printable
{
public:
  void print(std::ostream&amp;) const = 0;
  void print_indented(std::ostream&amp;, unsigned indent);
};
</pre>

<p>In this case, the interface is saying that you must provide an overload of
the abstract method <code>print</code>. Having done so, you wil