オブジェクト(B)へのポインタを返すライブラリコードがあります(ソースコードを変更できません)。あるshared_ptrへのポインタを変換する
class A
{
public:
A(boost::shared_ptr<B> val);
...
private:
boost::shared_ptr<B> _val;
...
};
int main()
{
B *b = SomeLib();
A a(b); //??
delete b;
...
}
が、私はBのディープコピーを作成し、下にその寿命を制御したい場合でも、(:私は、コンストラクタのこのタイプのクラスの下のshared_ptrとして、このポインタを格納したいと思います元のbは削除されます(削除b)、私はまだa)の下に正確なコピーを持っています。
それは些細なようであれば、私はあなたが言うように、あなただけのポインタをコピーしないそれらをコピーする必要が...
私は関数 'copy'の使用を見ません... –
main関数の2行目です。 –
@Mykola:私はそれを見る - しかし私はそれを得ていない:それは単に意味をなさない。ごめんなさい。 –