Wady deklaracji klasy C ++ do przodu?

Chcę używać deklaracji forward klasy w moim oprogramowaniu, więc mogę mieć typedefs
i używaj ich w pełnej deklaracji klasy.

W ten sposób:

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;
};

więc moje pytanie brzmi: czy w tej metodzie są jakieś wady? Pamiętam pewną dyskusję na temat problemów z destruktorem z deklaracją do przodu, ale nie wyciągnąłem wszystkiego.
czy jest jakaś inna opcja wdrożenia czegoś takiego?

Dzięki.

EDYCJA: Znalazłem dyskusję, o której mówiłem:tutaj

questionAnswers(2)

yourAnswerToTheQuestion