私はソフトウェア開発に取り組んでstd::shared_ptr
おり、ソフトウェア開発中に、メモリ管理について疑問を抱かせるいくつかのケースに遭遇しました。私はサードパーティのライブラリを持っていて、関数からの生のポインタを常に提供していて、コードでそれらを変換していましたstd::shared_ptr
(boostからではなくstdから。ところで、2つの違いは何ですか?)。それで、私が次のコードを持っているとしましょう:
ClassA* raw = new ClassA;
std::shared_ptr<ClassA> shared(raw);
共有ポインターがスコープ外になるとどうなりますか(関数内でローカルに宣言され、関数を終了するとします)。ClassA
生のポインタがオブジェクトを指しているので、オブジェクトはまだ存在しますか?