タグ

javaとC++に関するtsupoのブックマーク (2)

  • C++で演算子オーバーロードしたときの演算子決定基準について調べた - 矢野勉のはてな日記

    C++すみませんしょぼい話です。『ジョエル・オン・ソフトウェア』の下記記事で 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project C言語では i = j * 5 は j を5倍する以外の意味はないけども、C++の場合は、i = j * 5 が何を意味するかは i と j の型を調べ、型の定義を見て、型にサブクラスがないかどうかをチェックし、もしあったら、実際には i あるいは j がそのサブクラスの方だったりしないかどうかチェックして初めて、 i = j * 5 の意味がわかる、という話があります。この話をtwitterにぽろぽろ書いているうちに、自分がC++の演算子オーバーロードについて無知であることが分かったので実験コードを書いてました。 その実験コード書きながらもtwitterにぽろぽろ書いてたんですが、何度

    tsupo
    tsupo 2008/09/24
    明示的にコンストラクタを呼び出したい場合は CBase *base = new CBase(); と書けばいいし / virtual は油断すると、いろいろな罠にはまるので注意(メモリリークの原因になったり、予想外のメソッドが動いたり)
  • Rubyの生産性の高さはどこまで本当か? - 分裂勘違い君劇場 by ふろむだ

    もの人がブックマークしているこの「Ruby仕事に使うべし!」という記事で書かれているRubyの優れた特徴は、実際のところ、どの部分が、どこまで当なのでしょうか? 少し検証してみたいと思います。 「Rubyがスゴイ」とされる点のどれがホントでどれがウソ? 「Ruby仕事に使うべし」では、まず、Rubyの特徴として、 (1)いろんな言語のいいとこ取り (2)構文が強力 (3)楽しくプログラミング (4)問題が起こりにくいように設計されている という点を冒頭で掲げています。 まず、これらをどのように検証すればよいか、考えてみます。 まず、(1)のいいとこ取りについては、いいとこ取りをし続けながらいつも進化しているのは、最近の言語はみんなそうで、それはRuby独自の特徴でもなんでもありません。 たとえば、C#は、その典型で、VM、自動メモリ管理、パッケージによる名前空間管理、マルチスレッド、

    Rubyの生産性の高さはどこまで本当か? - 分裂勘違い君劇場 by ふろむだ
  • 1