Vorwärtsdeklarationsnachteile der C ++ - Klasse?

Ich möchte die Forward-Deklaration einer Klasse in meiner Software verwenden, damit ich typedefs haben kann
und verwenden Sie sie in der vollständigen Klassendeklaration.

So etwas:

class myclass;
typedef boost::shared_ptr<myclass> pmyclass;
typedef std::list<pmyclass > myclasslist;

class myclass : public baseclass
{
private:        // private member declarations
        __fastcall myclass();

public:         // public member declarations
        __fastcall myclass(myclass *Parent)
            : mEntry(new myclass2())
          {
            this->mParent = Parent;
          }
        const myclass *mParent;
        myclasslist mChildren;
        boost::scoped_ptr<myclass2> mEntry;
};

meine frage ist also: gibt es nachteile bei dieser methode? Ich erinnere mich an einige Diskussionen über Destruktorprobleme mit Forward-Deklaration, aber ich habe nicht alles herausgeholt.
oder gibt es eine andere möglichkeit so etwas umzusetzen?

Vielen Dank.

EDIT: Ich fand die Diskussion, auf die ich mich bezog:Hier

Antworten auf die Frage(2)

Ihre Antwort auf die Frage