は、私は私のソフトウェアで、クラスの宣言を前方に使用したいので、私は
のtypedefがあり、クラスフル宣言内にそれらを使用することができます。このようなC++クラスの前方宣言の欠点?
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:
5.3.5/5:
「が削除されているオブジェクトがある場合は、不完全なクラス型C++標準からhere
が、私は前にそれを読んでいたし、ここで私の質問は: それが適切な宣言の後に定義されている場合は問題はないはず、右? – Andrew
はい、まあそれは私がそれを読む方法です。私たちのコンパイラが標準に準拠していることを祈っています: –