2012-01-25 5 views
0

私はクラスを持っています。機能はvoid delete_ptr(void *);void push_into(std::set<my_string> ** pps);です。私はこのクラスの10のインスタンスを持っています。それぞれ異なるヒープに割り当てられます。メインヒープには私のプログラムがあります。私のマップは同じ場所です。私はそれぞれのクラスのインスタンスpush_intoをmainから私のマップに呼びたいと思っています。それぞれのpush_intoは(**pps).insert(std::string("Hello str"));または(**pps).insert("Hello char");を呼び出します。 を保持するこのようなmy_stringクラスを作成する方法と、my_stringクラスインスタンスを作成するクラスのptrdelete_ptrを作成する方法はありますか?私が疑問に思うptrをstd :: stringに保ち、ptrをラッパーインスタンスを作成したクラスの特別なクラス関数に保つstd :: stringラッパーの作成方法は?

主な目的は次の通りである。

  • それはそれを作成したインスタンスの文字列とdelete_ptrへのポインタを維持するためにそのコンストラクタを作成する方法?
+1

アロケータを参照したいと思うかもしれません。カスタムアロケータとしてdelete_ptrを使用してください。このアプローチは、説明したものとは異なりますがスケーラビリティは異なります。 –

答えて

1

boost::shared_ptrcustom deallocatorを使用できます。 boost::bind

+0

my_stringを少なくとも作成者の 'delete_ptr'にptrを取得しようとすることは可能でしょうか? – myWallJSON

+0

'my_string'を削除するには' delete_ptr'が必要ですか? 'shared_ptr'がこれを処理します。 'boost :: shared_ptr 'をあなたの 'set'sに保存し、カスタムコンパレータを用意して、あなたの構築の' delete_ptr'へのポインタを提供してください。あなたが例が必要な場合はコメントしてください、明日投稿します。今家に帰る必要があります。 –

+0

私の主なポイントは、APIユーザーから文字列以外に何かを送ることを隠すことでした...) – myWallJSON

関連する問題