福井といいます。 現在、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++に詳しい方、 メンバ変数へのレジスタの宣言方法をご教授ください。 よろしくお願いします。 長文ですみません。