[H8-ML(2912)] C++での設計
From: 福井 和敏 <fukui.kazutoshi@xxxxxxxxxxx>
Date: 2003年03月05日(水)11時49分51秒
福井といいます。

現在、HEWを使用してH8プログラムを書いていますが、
今回、C++を使用して設計してみようと思っています。
しかし、C++の特徴のひとつであるデータの隠蔽に
関して、わからない点がありました。

たとえば、LEDをON/OFFするクラスLEDを作ったとして、
メンバ関数にvoid LedON(BOOL onoff)というのを加えたとします。
onoffはLEDを点灯させるか、消灯させるかの引数です。

LedONは下記のようになると思います。

void LedON(unsigned char onoff)	// onoff= 1:点灯,0:消灯
{
	LED = onoff;	// LEDは実際にLEDが接続されるポート
}

LEDが接続されるポートをこの関数からのみのアクセスとすることで
データの隠蔽が達成できると思っています。

ここで疑問に思ったのがLEDが接続されるポートをどうやって
Privateなメンバ変数として宣言し、アドレスを指定すればいいかということです。

class Led {
	unsigned char LED;	// ←このメンバ変数のアドレスを指定したい
    public:
	void LedON(BOOL onoff);
}
	
今はHEWで自動作成される iodefine.h を使用してレジスタアクセスしています。
しかし、アドレスの指定には#defineが使用されています。
これでは、メンバ変数としては宣言できないような気がします。

どなたかC++で設計されている方、またはC++に詳しい方、
メンバ変数へのレジスタの宣言方法をご教授ください。
よろしくお願いします。
長文ですみません。


スレッド概略
[2849(R)](起点)
 └[2911(U)]
   └[表示中]
     └[2913(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]