ビジネス WinDbg入門 Windowsカーネル分析ノート


オブジェクト指向を学ぶこと

 前回に引き続き、次のPDF論文の一部を紹介します。

C++の学び方


 学習している内容が技術的に難しいと感じられるような場合、筆者は自分の身近にある具体例を振り返ることにしています。おそらく、標準ライブラリをはじめて学ばれる方は、その発想に戸惑いを禁じえないかもしれません。

 標準ライブラリは、テンプレートという、クラスコレクション(コンテナクラス)と関連メソッドで構成されています。たとえば、Windowsの世界のフォルダ(ファイルコレクション)と"フォルダを開く"などの各種メソッドの組み合わせを効率的に作り上げるための、"考え方とテクニック"を含んでいるのが標準ライブラリといってよいでしょう。この考え方とテクニックをマスターすれば、ファイルコレクションだけではなく、オブジェクトコレクション、文字列コレクション、整数コレクション、浮動小数点コレクションなどの作成方法も容易にマスターできる、というわけです。ファイルコレクションと他の(たとえば、浮動小数点)コレクション間の相違(専門的には、型の違い)は、「パラメータ」という概念で隠ぺいされます。"パラメータによって型の違いが隠ぺいされるため"、「ジェネリックプログラミング」、と呼ばれることもあります。

 本日は、10ページの「I tend to present abstract classes ...」で始まる段落の内容を検討します。Bjarne Sroustrup氏は、標準ライブラリを学んだ後は、「抽象クラス」と「クラス階層」を学習することを薦めています。抽象クラスとクラス階層については、こちらの連載を参照してください。「抽象クラス」と「クラス階層」は、JavaやC#などのプログラミング言語を根底から支える重要概念です。ここでは、「クラス階層」は「オブジェクト指向」と同じ、と考えてしまってください。

 「抽象クラス」と「クラス階層」と一口に言っても、かなり漠然としています。そこで、Stroustrup氏は、プロジェクト内容、つまり、自分のニーズに応じて、次に学習すべき項目を決定するようにアドバイスしています。より具体的に言えば、実際のプロジェクトで使用するライブラリに応じて次のステップを踏み出す、ということです。たとえば、Windowsアプリケーション開発現場では、グラフィックスライブラリを使用することになりますから、クラス階層、ポリモーフィズム、派生クラスなどの概念と応用方法を学ぶ必要が出てきます。リモートコントロールなどに内蔵されるファームウェア開発では当然種類の異なるライブラリを学ぶことになるでしょう。C++学習もこの段階まで進めば、もはや初心者とは呼ばれません。「抽象クラス」と「クラス階層」を学んだ後は、「抽象クラス」と「クラス階層」を自分で活用することになります。そこまで成長すれば、プロ、といってよいと思います。

 かなりの数の専門用語が登場しました。クラスコレクション、コンテナクラス、ジェネリックプログラミング、抽象クラス、クラス階層、オブジェクト指向、グラフィックスライブラリ、ポリモーフィズム、派生クラス、ファームウェア。これらの用語は現在のIT業界を支える重要概念に付けられた名称です。

 今回紹介したすべての用語を理解できなかったとしてもがっかりする必要はありませんが、C++設計思想は、現在一般化しているほぼすべてのIT用語と概念を生み出す源泉となっていることだけはきちんと理解しておくとよいでしょう。この連載記事を読んでみると、「Cの世界をSimula的な発想が覆う」という歴史的な現象が発生していることがわかります。その現象の成果物が、C++(オブジェクト指向によって隠ぺいされたC)です。
前へ | 次へ


 WinDbgアプリケーション開発独習講座  ホーム


Copyright©豊田孝 2004- 2008
本日は2008-11-22です。