Home > Archives

Archives

  • 10 Entries
  • 6 Comments
法則に違反したっていいじゃない - Posted date: 2009年7月22日 11:10
  • オブジェクト指向プログラミングにおける有名な法則の一つにデメテルの法則 (Law of Demeter, LoD) というものがある。これは、簡単に言えば「戻り値として返されたオブジェクトのメソッドを呼び出してはいけない」という法則であり、例えば次のようなコードを書くと、「それ、デメテルの法則に違反しているよ」などと言われたりするので注意が必要だ。 int id = projects.Find(...
  • Posted by: zakio
  • Category: C++ | OOP
  • Tag: C++, オブジェクト指向, プログラミング
仮想関数を generic にする - Posted date: 2009年6月 1日 13:35
  • C++では、メンバ関数テンプレートを仮想関数にできない。ところが、C++/CLI ではテンプレートに良く似た機能である generic を仮想関数につけることができる。これにはどんなトリックが隠されているのだろう? まずは、次のようなコードから。 public ref class Base // ref class なので参照型 { public: generic // generic を仮...
  • Posted by: zakio
  • Category: .NET Framework | C++/CLI
  • Tag: C++/CLI, generics, template, virtual
Pimpl イディオムのお手軽な実装 - Posted date: 2009年4月15日 22:21
  • Pimpl イディオム(Handle-Body, Compilation or Compiler Firewall, Cheshire Cat とも呼ばれたりする)は実装の詳細を隠蔽したい時に用いられる手法だが、内部が委譲の嵐になったり、ポインタの扱いに注意を払う必要があったりと、気軽には使い難いパターンの一つではある。内部の委譲に関しては Pimpl の性質上仕方がないものとして諦められるが、...
  • Posted by: zakio
  • Category: C++
  • Tag: C++, Pimpl
コレクションの永続化 - Posted date: 2009年4月 6日 22:16
  • .NET Framework で独自のコントロールを作りたい場合は、UserControl から派生させたクラスを用意すればよい。一般的に、自作コントロールには独自のプロパティも含まれており、そのプロパティが自作クラスになっていることも多いはず。今回は、自作クラスの配列をプロパティとして持たせたところ大ハマリしたという話。 ある自作コントロールに自作クラス MyItem の配列をプロパティとして...
  • Posted by: zakio
  • Category: .NET Framework | C++/CLI
  • Tag: .NET Framework, C++/CLI, DesignerSerializationVisibility, UserControl, カスタムコントロール, 永続化
C++でメンバ関数テンプレートを仮想関数にできないのは何故? - Posted date: 2009年3月19日 21:44
  • C++ でメンバ関数テンプレートを仮想関数にしようとして、コンパイラに怒られた経験がある人は多いと思う。 class Hoge { public: template virtual void Func(const T& in) {} // メンバ関数テンプレートは仮想関数にできない }; こういう場合、クラスを丸ごとテンプレート化してしまえば何とかなる場合が多いので、どうしてもという時は設...
  • Posted by: zakio
  • Category: C++
  • Tag: C++, template, ジェネリクス
Blender で favicon - Posted date: 2009年3月11日 02:52
  • Blender で favicon を作ってみた。 Blender はフリーの 3DCG ソフト。操作方法にクセがありまくるため毎回イライラしながら作ることになるのだが、icon 系の画像を作る時にはナンダカンダ言いつつも結局 Blender を使っていることが多い。 ...
  • Posted by: zakio
  • Category: Blender
  • Tag: Blender, favicon
値型とボックス化 - Posted date: 2009年3月 4日 13:24
  • 前回の続き。 CLI は値型と参照型を区別する。一般に値型はスタック、参照型はヒープ上に配置されるが、C++/CLI では参照型であっても C++ と同じようにスタックに置くことができる。正確には「置いたように見せかける」だが、構文的にも意味的にもスタックに置いたオブジェクトと同じように扱える。 List list1; // 参照型なのにスタックに置ける(ように見える) List* list2 ...
  • Posted by: zakio
  • Category: C++/CLI
  • Tag: C++, C++/CLI, ボックス化, 値型
ハンドルとポインタと参照 - Posted date: 2009年2月25日 21:56
  • C++ に慣れ親しんだ私は、C++/CLI のハンドルを CLI heap 用のポインタという風に理解している。native heap は new で確保してポインタへ、CLI heap は gcnew で確保してハンドルへという単純な話だ。それだけならわざわざ取り上げる必要もないが、色々と調べているうちに混乱してきたので書きながら整理してみようと思う。 まずは単純な話から。 using nam...
  • Posted by: zakio
  • Category: C++/CLI
  • Tag: C++, C++/CLI
ソースコードを美しく - Posted date: 2009年2月20日 01:56
  • といっても、読みやすいきれいなソースコードを書きましょうといった話ではなく、blog 上でソースコードをきれいに表示したいという話。 気になったことを備忘録の感覚で書き留めていこうという趣旨で blog を始めたのだが、気になることの大半がソフトウェアに関する事なので、ソースコードを簡単にコピペできることは「めんどくさくない」運用という点においては必須の機能。 とりあえずは、以下のようなコードが...
  • Posted by: zakio
  • Category: Movable Type
  • Tag: VimColor, シンタックスハイライト
blog あるいは備忘録 - Posted date: 2009年2月14日 21:55
  • とりあえずテスト。 こんなイイ加減なエントリーで始まるブログも珍しいと思うが、極度に飽きっぽい私にとっては、これくらいから始めた方が長続きするはず。 最近(に限った話ではないかも知れないが)物忘れが激しくなってきた気がするので、気になったことは記録しておいた方がいいかも、というのがブログを始めようと思った動機。ただし、記録という作業そのものに手間がかかってしまうとあっという間に終了フラグが立ってし...
  • Posted by: zakio
  • Category: Movable Type
  • Tag: Movable Type

Home > Archives

Search
Feeds

Return to page top