title: Should I make wrappers for polymorphic classes that need to be allocatd on the heap?
body: <p>Right now, the GUI API for games I''m developing has an abstract Image and Font class. Depending on whether they use a GL, SDL etc Font, they load fonts like this:</p>
  
  <pre><code>Font *segoe = Font::load("segoe.ttf");
  </code></pre>
  
  <p>There is also a corresponding destroy() static function as well.</p>
  
  <p>I like this design, but I was wondering if it would be a good idea to wrap it so that no pointers needed. Something like this (with better naming conventions)</p>
  
  <pre><code>WrappedFont segoe = WrappedFont(Font::load("segoe.ttf"));
  </code></pre>
  
  <p>It would also have overloaded = and a copy ctor, and a destructor.</p>
  
  <p>Is it generally more desired for a game gui for the user to manage their Images and Fonts, or is a wrapped pattern more desirable?</p>
  
  <p>Thanks</p>