この特集のトップページへ
Chapter 2:COMアーキテクチャの概要

見出し 2.1 C++によるサンプルの実装

 COMの実装に対する理解を深めるため,まずは「英和辞書を検索する」という機能をもつサンプルアプリケーションを,単純にC++で実装してみることにしよう。ここで扱うサンプルアプリケーションは,単なるC++のプログラムであって,COMではない。

 「1.1 C++によるオブジェクト指向プログラミング」で述べたように,C++にはCから拡張されたclassというキーワードが用意されている。Cの構造体(struct)は単にデータを取りまとめる機能を提供するだけだったが,C++のクラス(class)はデータを操作するメンバ関数(メソッド)も含めて利用できるようになっている。つまり,classキーワードが用意されたことにより,C++ではデータとそのデータを利用するメソッドをまとめてクラスに集約し,そのクラスを実体化してオブジェクトを生成するというプログラミングが可能となったのである。C++がオブジェクト指向プログラミングを実現するための第一歩を踏み出したのは,classキーワードの登場によるところが大きい。

見出し 2.1.1 C++のクラスを使う
 では,classを使ってデータとメソッドを束ねてみよう。  作成するクラスはCDictionaryで,英和辞書クラスを定義する(List 2-1)。CDictionaryクラスには,(1)英和辞書の単語数を保持するm_nWordメンバ変数(プロパティ),(2)英和辞書を検索するLookupWordメンバ関数(メソッド),の2つを宣言する。

 なお,EJ_Dictionary構造体で定義した英和辞書自体をCDictionaryクラスの内部に含めることも可能だが,データ構造が複雑になりすぎるため,本サンプルではクラスの外に定義する(List 2-2)。

prev Chapter 2 2/9 next