Я хочу использовать прямое объявление класса в своем программном обеспечении, поэтому я могу иметь typedefs
и использовать их внутри полной декларации класса.
Smth вот так:
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;
};
поэтому мой вопрос: есть ли недостатки в этом методе? Я вспоминаю дискуссию о проблемах деструктора с форвардной декларацией, но я не получил оттуда все. или есть ли другой способ реализовать что-то вроде этого?
Спасибо.
EDIT: Я нашел обсуждение, которое я имел в виду: здесь