タグ

ソフトウェアとC++に関するrti7743のブックマーク (2)

  • 継承の使い方 - kikairoya’s diary

    先日の多態について少し補足。 継承を使うときの考え方として、"実装の継承"と"インタフェースの継承"があります。 前者は再利用するための継承、後者は再利用されるための継承です。 ところが、C++に限らず、一般的な継承の仕組みは、実装とインタフェースの両方を継承してしまい、クラスの肥大化や冗長化を招きやすくなっています(JavaやC#にはinterfaceが、C++には純粋仮想関数があり、一応インタフェースのみの継承は可能にはなっています)。 これを避けるために、NVIイディオムやprotected non-virtual デストラクタを使うわけですが、実のところ、継承を使わないほうが(コード量は多くても)、スマートなデザインになることが多々あります。 事実、既存の実装を再利用するだけならばコンポジョン(+pimpl)だけで通常は十分ですので、インタフェースを継承する必要が無ければ(特にpu

    継承の使い方 - kikairoya’s diary
    rti7743
    rti7743 2010/03/30
    私もそう思う。。。
  • グーグル、C/C++に代わる新言語「Go」をOSSで公開 - @IT

    2009/11/11 グーグルは2009年11月10日、Cのようにシステム記述に適したプログラミング言語「Go」をBSDライセンスの下に公開した。C++のようなC言語の拡張ではないが、Cに似た構文が特徴で、ガベージコレクタ(GC)や並列プリミティブ、イテレータ、実行時リフレクションなどを備えた新しい設計が目を引く。Goグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを開発したロバート・グリースナー氏など錚々(そうそう)たるメンバーで、こうした点でも注目を集めそうだ。 グーグル社内では、まだGoを使っていないが、今後はWebサーバなどのシステム関連のソフトウェアで実用を検討しているという(Goのオフィシャルサイトは

  • 1