タグ

2013年2月7日のブックマーク (3件)

  • Pimplイディオム - ぐるぐる~

    読書会で「C++は循環参照の記述が困難なところが・・・」という話題があったけど、その場はPimplイディオムという言葉のみを紹介しておいた。 ということで補足を。 まず、問題となるコードはこんな感じ。 // hoge.h #pragma once #include "piyo.h" class hoge { piyo p; }; // piyo.h #pragma once #include "hoge.h" class piyo { hoge h; }; このコードはどうがんばってもコンパイルできない。 なぜなら、hogeをコンパイルする為にはpiyoが必要で、piyoをコンパイルする為にはhogeが必要だから。 これを、Pimplイディオムを使用して回避するとこんな感じになる。 // hoge.h #pragma once class hoge { // hogeクラスのprivate

    Pimplイディオム - ぐるぐる~
    motsuni2
    motsuni2 2013/02/07
    ファイル間の依存関係をなくすためのイディオム
  • RAII - ぐるぐる~

    詳しい文脈は忘れてしまったけど、読書会で「C++はデストラクタが弱い」的な話題があがった。 その場はRAII*1使えばいいよ、とだけ言って概要のみ説明しただけだったので補足を。 まずは、RAIIの実例を知ってもらう為に、簡単なサンプルの紹介から。 void write_to_file(const std::vector<std::string>& vec) { std::ofstream fout("out.txt"); std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(fout, "\n")); } このプログラムでは、ファイルストリームのオープンもクローズも明示的に行っていないにもかかわらず、どちらも正しく行われる。 これは、コンストラクタ内部でオープンを行い、デストラクタ内部でクローズを行うことで

    RAII - ぐるぐる~
    motsuni2
    motsuni2 2013/02/07
    リソースの取得、解放をそれぞれコンストラクタ、デストラクタで行う。C++の例
  • リダイレクトの警告

    表示中のページから http://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/TypesafeEnum/TypesafeEnum.html にリダイレクトしようとしています。 このページにリダイレクトしないようにする場合は、前のページに戻ってください。

    motsuni2
    motsuni2 2013/02/07
    Typesafe Enumパターンの概要からJavaに追加されたenumの使用方法、またenumでのStateパターンなど。