問題CPP11004の解答例と解説 C++ Lv.4
参照カウント(30分)
参照カウントは、この問題文中にあるように OS がファイルやディレクトリなどのリソースを管理するときに使われるほか、Javaなどのガベージコレクタや、COM(Component Object Model)のCOMオブジェクトなどで使用されているよ。例えばJavaのガベージコレクタは、Javaの仮想マシンが参照カウントがゼロのメモリ領域を削除してくれるので、プログラマがメモリ管理をしなくてもメモリリークの心配がなくなるんだ。
<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。
解答例1では、参照カウントを管理するための map オブジェクトをメンバ変数に追加しているよ。
参照カウントが 0 になった時、map オブジェクトからそのキーと値を削除する(eraseする)ようにしてももちろんいいよ。ただしこの解答例では参照カウントを0のままにして残しているよ。このあたりは、どういう使われ方をするソフトウェアなのかでやり方が変わってくるよ。例えばそのキーは削除してもすぐにまた追加されるようなら、参照カウントは 0 として持っていた方が良いこともあるよ。
参照カウントが 0 になった時、map オブジェクトからそのキーと値を削除する(eraseする)ようにしてももちろんいいよ。ただしこの解答例では参照カウントを0のままにして残しているよ。このあたりは、どういう使われ方をするソフトウェアなのかでやり方が変わってくるよ。例えばそのキーは削除してもすぐにまた追加されるようなら、参照カウントは 0 として持っていた方が良いこともあるよ。
初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録
新規登録