QScriptEngineclass のオーバーロードされたクラス コンストラクターを介して渡しているへのポインターがあり、EvaluatorそれをQScriptEngine *engine_(クラスPropertyサブクラスEvaluator、および のこのコンストラクターを呼び出しEvaluatorて、既に割り当てられている に渡しますQScriptEngine) に割り当てます。引数のないコンストラクターは、新しいQScriptEngineポインターを作成します (この方法でクラスのGenericサブクラスEvaluatorを作成します)。デストラクタで、そうengine_でないかどうかをテストNULLし、ポインタを削除してから割り当てますNULL。engine_派生のポインター ( )Propertyも にする必要がありますNULLか? そうではないことを何かが教えてくれます。そうでない場合、この状況にどのように対処しますか? QScriptEngine全体を通して同じインスタンスである必要があります。QScriptEngineの = 演算子はプライベートです。または、ポインターをすべて一緒に回避します。
別のSOの質問で、共有ポインタ(boost::shared_ptrおよび)に関する情報を見ました。std:tr1::shared_ptr私はすでに正規表現ライブラリにブーストを使用しているので、これがこれに対処する最善の方法である場合、ブーストは問題外ではありません。一般的な C++ の知識と将来のプロジェクトのために、ブースト以外の方法があることを願っています。