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