title: C++ Class forward declaration drawbacks?
body: <p>I want to use forward declaration of a class in my software, so I can have typedefs<br>
  and use them inside the class full declaration.</p>
  
  <p>Smth like this: </p>
  
  <pre><code>class myclass;
  typedef boost::shared_ptr&lt;myclass&gt; pmyclass;
  typedef std::list&lt;pmyclass &gt; myclasslist;
  
  class myclass : public baseclass
  {
  private:        // private member declarations
          __fastcall myclass();
  
  public:         // public member declarations
          __fastcall myclass(myclass *Parent)
              : mEntry(new myclass2())
            {
              this-&gt;mParent = Parent;
            }
          const myclass *mParent;
          myclasslist mChildren;
          boost::scoped_ptr&lt;myclass2&gt; mEntry;
  };
  </code></pre>
  
  <p>so my question is:
  are there any drawbacks in this method? I recall some discussion on destructor issues with forward declaration but I did not get everything out of there.<br>
  or is there any other option to implement something like this?</p>
  
  <p>Thanks.</p>
  
  <p>EDIT:
  I found the discussion I was referring to: <a href="https://stackoverflow.com/questions/1025313/c-will-an-empty-destructor-do-the-same-thing-as-the-generated-destructor/1025337#1025337">here</a></p>