- 98 名前:仕様書無しさん mailto:sage [2008/02/25(月) 21:59:05 ]
- 制御系だって、オブジェクト指向は有効に使えますよ。
例えば、レジスタ構成が同じで、I/Oアドレスが異なる非同期シリアル ポートが複数チャンネルあったする。 従来の泥臭いCのスタイルでは、 void CommInit_A(); void CommInit_B(); … void CommPutChar_A(char c); void CommPutChar_B(char c); などと、実際には関数内部のコードはレジスタや変数領域の指定のみが 異なるだけの関数を、各ポート用に全ての処理毎に定義して呼び出す のが、一般的スタイルだった。 オブジェクト指向で、非同期シリアルポートを扱うクラスを定義し、 リングバッファやバッファ管理用のグローバル変数をクラスのメンバ 変数として定義することで隠蔽化し、コード部分を共通化できる。 I/Oレジスタ群の先頭アドレスをメンバ変数として保持し、ポートの 指定は例えばコンストラクタの引数で行う。 もちろん、C言語でもポインタや構造体を使って似た様なコード記述は 実現できるが、C++の方がずっと簡単でスマートに記述できる。
|

|