私はOpenSplice DDSを使用しています。そこには、ほぼすべてのC++クラス(私が使用した基本的なもの、それについて言及することができます)がnew
演算子にオーバーロードされています。私は理解していない、なぜ誰もそれを行うだろうか?誰かがこれの必要性を示すいくつかの例を提供することができますか?なぜあなたはオペレータ `new`をプライベートにするのですか?
私はnew
を必要とする理由:これらのクラスのほとんどは、デフォルトコンストラクタを持っていない、と私はunique_ptr
て、後で私の実装では、それらを初期化する必要があるため。
簡単なトリック:一方、私は非常に簡単にこれをトリックすることができます!私はこのクラスを別のクラスでラップすることができ、私が望むだけでnew
を使用します。それゆえ、私はその動機を理解しておらず、悪いスタイルのように感じます。誰かが説明できますか?
EDIT:
ちょうど明確にする:エスケープすることができない、これは良い答えで良い例を提供します。new
オペレータがプライベートにしているのを見るすべての人に役立ちます。
'private'、' protected'、 'public'が本当に導く以外何もしませんあなたのAPIの開発者/ユーザー。あなた自身の保護を回避することを選択した場合、C++でそれを行うほとんどの方法があります – stefan
あなたは[this](http://stackoverflow.com/a/124857/1870232)を見ましたか? – P0W
この質問は、ツール/ライブラリ/ SWに固有です。私はあなたにそれのためのタグがあったといい。 – P0W