タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

weak_ptrに関するbonty_shushushaのブックマーク (2)

  • shared_ptrとweak_ptrの使い分けわかる? - Qiita

    はじめに 当に怖いC++erとC++という糞言語 で「スマートポインタ(弱参照)に対する知識が無いC++erは嫌だ」と言われてしまったので、勉強することにした。 リソース管理 プログラムにおけるリソースとは、メモリやファイルなど、OSによって管理されているものを指す。C++では確保したリソースを解放する責任はプログラマが負っているため、解放忘れなどのミスによってリソースリークが起こり、デバッグに数時間/数日間苦しめられる場合もある。つまりC++を使う場合は、 確保したリソースは必ず一度だけ解放しなくてはならない という法則を肝に銘じてプログラミングを行う必要がある。 スマートポインタ 「確保したリソースをプログラマが忘れずに必ず一度だけ解放する必要がある」と言ったものの、これをプログラマが 常にミスすること無く 行うことは非常に難しく、できることならJavaやC#の様にリソース管理を言語

    shared_ptrとweak_ptrの使い分けわかる? - Qiita
  • C++0xの機能(weak_ptr/スマートポインタ) - What is it, naokirin?

    今回はweak_ptr。 weak_ptrは弱参照の概念のためのスマートポインタです。 shared_ptrでは循環参照の問題を解決できません。 #include <iostream> #include <memory> class Sample { public: Sample() {} ~Sample() {} std::shared_ptr<Sample> ptr; }; int main() { std::shared_ptr<Sample> p1(new Sample); std::shared_ptr<Sample> p2(new Sample); p1->ptr = p2; p2->ptr = p1; return 0; } // 解放されない しかし、弱参照であるweak_ptrは参照カウントを行わないため、参照がある無しに関わらずスコープを抜けるとインスタンスを解放します

    C++0xの機能(weak_ptr/スマートポインタ) - What is it, naokirin?
  • 1