制御系エンジニア絶滅の危機at PROG
制御系エンジニア絶滅の危機 - 暇つぶし2ch98:仕様書無しさん
08/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++の方がずっと簡単でスマートに記述できる。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch