第1章 本格的オブジェクト指向プログラミングを目指すソフトVisualAge
オブジェクト間を接続して作成するWindows用プログラミングである
IBM製VisualAge C++を用いたプログラミングを本ホームページでは述べます。
ここでは、オブジェクト化されたクラスをパーツと呼びます。
図のような簡単なエディターは、C言語によるコードを一切書かないで作成できます。
VisualAgeに含まれるVisualBuilderを用いて、下図のようにパーツを接続します。
ここに示されているパーツは、すべてVisualAge C++に付属していますので、
グラフィック・ユーザー・インターフェイス(GUI)だけに集中できます。
次に、独自のパーツ(オブジェクト)も、VisualBuilderを用いてプロパティ
(ここでは属性)とメソッド(ここではアクション)を指定するだけで、
自動的にパーツ(オブジェクト)化してくれます。
後は、アクションの部分をC言語またはC++でコーディングするだけです。
下図に接合型電界効果トランジスタ(JFET)の電気的特性を計算しているところを示します。「右の計算」ボタンをクリックすると、pinch-off電圧と拡散電圧が表示されます。
次に、ソース電圧・ドレイン電圧・ゲート電圧を入力後、「下記の計算」ボタンを
クリックして、それぞれの値を計算します。
さらに、「IdとVgの計算」ボタンを押すと、子ウィンドウ「Id-Vg特性の計算」が
現れます。
このウィンドウで「Id-Vgの計算」ボタンをクリックすると、
ドレイン電圧(Vd=12 V)のときのゲート電圧が-5 Vから0 Vまで0.1 V間隔の
ドレイン電流(Id)・相互コンダクタンス(gm)・ゲート容量(Cg)・遮断周波数(fT)の
リストが計算されます。
「セーブ」ボタンを押すと、これらのデータの保管先を指定するダイアログが現われ、
指定したところに保管されます。
このようなプログラムも、パーツ中のJFETの電気的特性を計算するアクション(関数)を
C言語かC++でコーディングするだけです。
まず、子ウィンドウを下図のように作成します。これ自体もIdVgCalcというパーツになります。
図中のパーツCalcNumberOfData1とCalcIdVg1だけコーディングしました。
CalcIdVgをコーディングする場合、Vg、Id、gm、Cg、fTを配列にし、
通常コーディングのときに配列数を決めておかなければなりません。
このように配列数をあらかじめ決めるとデ−タ数が限られ、
汎用性(再利用性)が少なくなります。
ここでは、配列ではなく、シーケンシャルなデータ・コレクションという方法を
用いているため、データ数に制限はありません。
次に、メイン・フレームを作成します。
パーツCalcData1とChannelType1はコーディングしています。
パーツIdVgCalcは先ほど作成した子ウィンドウです。
これらを接続するだけで、プログラミングは終わりです。
各自で作成したパーツCalcData1とCalcIdVg1は汎用性があるため、再利用できます。
このようにVisualAge自身がもつパーツ群と各自で作成したパーツ群を用いて、
接続するだけでWindows用のプログラムが作成できるようになります。
このホームページでは、VisualAge C++を用いてWindows用プログラミングを
すぐに作成できるようになることを目的としています。
そのため、オブジェクトやプログラミング言語の一般的なことについて
詳細には述べていません。
それらは、VisualAge C++を用いてプログラムを作りながら、下記の参考書を
読み理解してください。
したがって、コーディングの詳細や接続の意味がはっきりしなくても、
このようにすればプログラミングできるということだけをこのホームページで
分かっていただければ幸いです。
参考書
書籍
「VisualAge C++ 入門」、JIPオブジェクト技術研究会著、トッパン
「VisualAge C++ ビジュアル・ビルダー入門」、星野新一著、Shoeisha
「VisualAge C++ 実践編」、武田多美子著、トッパン
"VisualAge for C++ : VisualAge Programmer's Handbook"、Dale R. Nilsson and Peter M. Jakab、Prentice Hall
"Programming with VisualAge for C++ for Windows"、Carrel-Billiard、Friess、and Mauny、Prentice Hall
連載雑誌
「Inside Windows」、 1996年12月号−1997年7月号
「C Magazine」、 1997年1月号−1997年6月号